-1

我有一个包含 int 变量的结构。

typedef struct _details_t{
 int id;
 int offset;
 int buff[4];
}details_t;

主要我已将共享内存附加到上述结构类型的指针上

int set_shm_data(details_t** details){
   if(NULL == details || *details == NULL){
           //error
   }
  *details->id = 345;
  return -1;
}

int main(){
 details_t* shmat;
  ....
  ....
 shmat = (details_t *)shmat(shmid,(void *)0,0);
 if(NULL == shmat){
  //error 
 }

 if(-1 == set_shm_data(&shmat)){
  //error
 }

 return 0;
}

我收到错误“对成员的请求不是结构或联合”。我检查了语法以及调用和访问方法。出现此错误似乎没有任何问题。

4

1 回答 1

4

问题在这里:

*details->id = 345;

运算符比->绑定得更紧密*,因此您需要使用括号:

(*details)->id = 345;
于 2013-09-17T01:48:59.800 回答