次の関数で問題が発生しています。2 次元の構造体配列を作成し、いくつかの値を割り当てようとしています。しかし、ダブル * 括弧で囲まれた行で、「タイプ 'void *' からタイプ 'struct CoordNode' に代入するときに互換性のないタイプです」というエラーが表示されます。ありがとうございました。
struct CoordNode
{
double coordX;
double coordY;
double coordZ;
char atomName[3];
};
void parseCrdList()
{
int resNum=1;
int tAtomNum,i;
char *tcoordX, *tcoordY, *tcoordZ, *tatomName, *tresNum;
ccur_node=headCoord_node;
struct CoordNode **t;
t=(struct CoordNode **)malloc(numofRes*sizeof(struct CoordNode *));
for (i=1;i<=numofRes;i++)
{
tAtomNum=0;
while(i==resNum)
{
memmove(tresNum,ccur_node->crdRow+26,4);
resNum=atoi(tresNum);
**t[i-1][tAtomNum]=malloc(sizeof(struct CoordNode));**
memmove(tcoordX,ccur_node->crdRow+35,7);
memmove(tcoordY,ccur_node->crdRow+43,7);
memmove(tcoordZ,ccur_node->crdRow+51,7);
memmove(tatomName,ccur_node->crdRow+17,3);
t[i-1][tAtomNum].coordX=strtod(tcoordX,NULL);
t[i-1][tAtomNum].coordY=strtod(tcoordY,NULL);
t[i-1][tAtomNum].coordZ=strtod(tcoordZ,NULL);
t[i-1][tAtomNum].atomName=malloc(4*sizeof(char));
strcpy(t[numofRes-1][tAtomNum],tatomName);
old_ccur_node=ccur_node;
ccur_node=ccur_node->next;
free(old_ccur_node);
tAtomNum++;
if (ccur_node==NULL)
break;
}
if (maxAtomNum<tAtomNum)
maxAtomNum=tAtomNum+1;
}
addCoordData(t);
}