1

私はかなり長い間、一方のポインタをもう一方のポインタと等しくしようとしてきましたが、それはうまくいきません。理由はよくわかりません。

構造体は次のとおりです。

typedef struct{
    struct listNode* next;
} listNode;

typedef struct{
     listNode* head;
} linkedList;

ただし、コードでは、実行しようとすると:node-> next = list-> head

'互換性のないポインタ型からの割り当て'エラーが発生します。私は本当に何か間違っているのを見ることができるので、どんな助けでも大歓迎です!ありがとう

4

1 に答える 1

1

struct listNode上部にaと記載されていますtypedefが、それは宣言されていません。

あなたは正しい順序で物事を行う必要があります:

               +----At this point, we can refer to "struct listNode"
               v 
struct listNode {
  struct listNode *next;  /* We know this self-references, uses the same name. */
};

/* Now establish a shorthand name for the struct ... */
typedef struct listNode listNode;

/* ... which we can use in subsequent declarations like this. */
typedef struct {
  listNode *head;
} linkedList;
于 2012-09-13T08:57:21.763 に答える