我有一个结构:
struct example {
char arr[SIZE];
char arr2[SIZE];
};
然后我有一个函数,它有一个参数,指向一些定义的struct例子的指针。如何访问其arr和arr2的值?
void someFunction (const void *ptr1) {
struct example firstStruct = ...
/* I want to access firstStruct.arr, firstStruct.arr2 somewhere here */
}
答案 0 :(得分:1)
你可以这样做:
struct example *exPtr = (struct example*) ptr1;
然后,要访问结构中的特定成员,只需使用解除引用运算符( - >)。例如,
printf("arr = %s\narr2 = %s", exPtr->arr, exPtr->arr2)
答案 1 :(得分:1)
您有两种选择。
投射空指针:
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];
}