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谢谢。这就是我要找的。它正在工作。:)