-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 に答える