我在以下功能中遇到问题。我正在尝试创建一个二维结构数组并为它们分配一些值。但我得到一个错误,说“在* *括号内的行上从类型'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);
}