可能重复:
“来自不兼容指针类型的分配”警告
我有两个结构,一个建立在另一个之上。我希望将它们一起使用来为有向加权图创建一个邻接表。
这是我的结构:
typedef struct{
int v;
int edgeWeight;
struct adjEdge * next;
}adjEdge;
typedef struct{
int v;
int weight;
struct adjEdge *adj;
}vertex;
所以基本上顶点 adj 将是空的,除非有一个连接到另一个顶点,这是 adjEdge 结构函数。
我的问题是,当我将 adjEdge 分配给顶点结构时,出现错误:
bfs.c:75: warning: assignment from incompatible pointer type
这是代码的一部分。查看它以查看错误实际被抛出的位置
while((fscanf(fp, "%d %d %d", &u, &v, &w)) != EOF)
{
vertexArray[u-1].v = u;
adjEdge * newEdge;
newEdge->v = v;
newEdge->edgeWeight = w;
newEdge->next = NULL;
if(vertexArray[u-1].adj = NULL)
{
vertexArray[u-1].adj = newEdge; //error
}
else
{
adjEdge * traverse = vertexArray[u-1].adj; //error
while(traverse->next != NULL)
{
traverse = traverse->next; //error
}
traverse->next = newEdge; //error
}
}
我认为一旦在我的结构中声明我可以利用这样的任务?