[英]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.