我的任务是创建一个既有节点又有边的简单图。在我给定且无法修改的头文件中,我有
typedef struct Edge_s* Edge;
typedef struct Node_s* Node;
typedef struct Graph_s* Graph;
在我的graph.c中
typedef struct{
size_t w;
struct Node_s* target;
}*Edge;
typedef struct{
size_t value;
Edge* edges;
size_t s;
}*Node;
typedef struct{
Node* nodes;
size_t n;
Edge* edges;
size_t e;
}*Graph;
Edge create_edge(Node t, size_t w){
Edge ret = malloc(sizeof(*ret));
ret->target = t;
ret->w = w;
return ret;
}
这会在编译时发出警告
warning: assignment from incompatible pointer type
我在这里有点困惑,我做错了什么,我应该如何解决?该程序几乎可以运行,我遇到了一个奇怪的错误,我认为这可能是由于这个原因。