C++ 通过指向struct的指针访问struct中的值
我有一个结构:C++ 通过指向struct的指针访问struct中的值,c++,c,arrays,pointers,struct,C++,C,Arrays,Pointers,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
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 somefunction(const void* ptr1){
struct example* firstStruct = (struct example*) ptr1;
char c;
// some access to array inside struct
c = firstStruct->arr[0];
}
- 将指针作为参数传递到结构:
void somefunction(struct example* ptr1){
char c;
// just use the "->" operator
c = ptr1->arr[0];
}
你是说ptr1
是指向结构的指针吗?您对firstStruct
的声明不是指针。您是否希望ptr1
是example
的实例?请尝试此struct example firstStruct=*(struct example*)ptr1
@BLUEPIXY,我只是好奇,你为什么只提供代码来快速解决问题?我这样问是因为我觉得这样做的时候,提问者可能/可能没有意识到他/她的错误。最好解释一下当前的错误(如果有),如何解决,为什么你希望你的解决方案有效,你的实际解决方案以及它有效的证据。@BLUEPIXY谢谢。这就是我要找的。它正在工作。:)