私の任務は、ノードとエッジの両方を持つ単純なグラフを作成することです。与えられたが変更できないヘッダーファイルには、
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
私はここでちょっと混乱しています、私は何が間違っているのですか、そしてどのようにそれを修正する必要がありますか?プログラムはほぼ機能しており、これが原因であると思われる奇妙なバグが1つ発生しています。