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