error: request for member ‘RESIDUE’ in something not a structure or union

时间:2022-02-02 21:19:08
我也是在linux下,用gcc编译的.c文件。以上各种方法(*m)->、 (*m). 、*(m)我都试过了,还是报错。error: request for member ‘RESIDUE’ in something not a structure or union
以下是我的代码,请求各位大侠指教:
typedef struct {
  struct{
      struct {
               double x,y,z;     
               int    atoms; 
               char   atomname[8];
               }ATOM[5000];        
        char   residuename[8];    
        int    residueno;          
        }RESIDUE[5000];            
 double xcen,ycen,zcen;
 char   chains;
 char   filename[800];             
 double rmsd;
}molecule;

molecule m[2];

int center_molecule(molecule *m) 

  int i,j;
  double xcen,ycen,zcen;
  xcen=ycen=zcen=0;
  for (i=0;i<3;i++){
  for (j=0;j<4;j++){
  if (m.RESIDUE[i].ATOM[j].selected){
  xcen+=m.RESIDUE[i].ATOM[j].x;
  ycen+=m.RESIDUE[i].ATOM[j].y;
  zcen+=m.RESIDUE[i].ATOM[j].z;
  }
  }
  }
  xcen/=12;
  ycen/=12;
  zcen/=12;
  for (i=0;i<3;i++){
  for(j=0;j<4;j++)
  {
  m.RESIDUE[i].ATOM[j].x-=xcen;
  m.RESIDUE[i].ATOM[j].y-=ycen;
  m.RESIDUE[i].ATOM[j].z-=zcen;
  }
  }
  return(0);
}

1 个解决方案

#1


终于解决了

molecule *m;
m->RESIDUE.ATOM.x就可以了,因为类型不同

#1


终于解决了

molecule *m;
m->RESIDUE.ATOM.x就可以了,因为类型不同