簡體   English   中英

通過指向struct的指針訪問struct中的值

[英]access value in struct through pointer to struct

我有一個結構:

struct example {
    char arr[SIZE];
    char arr2[SIZE];
};

然后,我有一個函數,該函數具有指向某些已定義結構示例的指針作為參數。 如何訪問其arr和arr2的值?

void someFunction (const void *ptr1) {

    struct example firstStruct = ...

    /* I want to access firstStruct.arr, firstStruct.arr2 somewhere here */

}

您可以執行以下操作:

struct example *exPtr = (struct example*) ptr1;

然后,要訪問結構中的特定成員,只需使用解引用運算符(->)。 例如,

printf("arr = %s\\narr2 = %s", exPtr->arr, exPtr->arr2)

您有兩個選擇。

  • 轉換void指針:

     void somefunction(const void* ptr1){ struct example* firstStruct = (struct example*) ptr1; char c; // some access to array inside struct c = firstStruct->arr[0]; } 
  • 將指針傳遞給struct作為參數:

     void somefunction(struct example* ptr1){ char c; // just use the "->" operator c = ptr1->arr[0]; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM