私はCの初心者で、すべてのポインターに問題があります。
私はこのコードを書きました:
typedef struct edgeitem
{
double weight;
}EDGE_ITEM, *pEDGE_ITEM; //also declaration of a pointer
/************ edge that includes a pointer to the edge item, next and prev ******/
typedef struct edge
{
pEDGE_ITEM *edge_item;
pEDGE *next; //pointer to next edge
pEDGE *prev; //pointer to prev edge
}EDGE, *pEDGE;
この方法でエラーが発生し、その理由を理解できません。
私はそれを知っていてedgeitem
、edge
タグであり、使用できますstruct edge *next
が、ポインターを宣言したので、どうしてそれらを使用できないのですか?
ポインターがある場合、* を使用する必要がありますか?
pEDGE_ITEM *edge_item
//or
pEDGE_ITEM edge_item
理解できません。これはポインターなので、なぜ * を追加するのですか?
最後の質問は次のとおりです。上記を使用している場合、次の違いは何ですか。
*EDGE next
EDGE *next
そして最後のもの:私が追加している場合:
typedef struct edge_list
{
EDGE *head;
}EDGE_LIST;
と同じですか:
pEDGE head;