我有一个包含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;
}
我收到错误“对成员的请求不是结构或联合”。我检查了语法以及调用和访问方法。发现此错误似乎没有错。
答案 0 :(得分:4)
问题在于:
*details->id = 345;
->
运算符绑定比*
更紧密,因此您需要使用括号:
(*details)->id = 345;