我有一个链表,我试图做一个临时数组来帮助我解决每个节点,而我建立其余的结构,然后我打算释放数组,但似乎我不能将结构的地址存储到指针数组中。C结构到结构指针数组编译错误
这里是我有问题,其中的归结版本:
vertex *vertexIndex = NULL;
vertex *vertexHead = NULL;
vertexHead = malloc(sizeof(vertex));
vertexHead->vertexNum = 5;
vertexIndex = malloc(sizeof(vertex*));
vertexIndex[0] = vertexHead; //<<<<<<<<<<< Error on this line
printf("%u\n", (vertexHead[0])->vertexNum);
main.c:72:19: error: incompatible types when assigning to type ‘vertex’ from type ‘struct vertex *’
任何帮助将不胜感激。
EDIT
下面是结构
struct edgeStruct {
unsigned int edgeTo;
struct edgeStruct *nextEdge;
};
typedef struct edgeStruct edge;
struct vertexStruct {
unsigned int vertexNum;
edge *edgeHead;
struct vertexStruct *nextVertex;
};
typedef struct vertexStruct vertex;
我们可以看到vertexHead和vertexIndex的声明? –
怀疑问题是与'sizeof(vertex *)'?虽然你似乎通过生成一个指针来填充数组? ?! – Andrew