在结构内部使用时指针等于

时间:2012-09-13 08:51:35

标签: c pointers equals c89

我一直试图让一个指针与另一个指针相等很长一段时间,但它不会这样做,我不确定为什么。

结构是:

typedef struct{
    struct listNode* next;
} listNode;

typedef struct{
     listNode* head;
} linkedList;

但是在代码中,当我尝试执行时: node-> next = list-> head

我从'不兼容的指针类型'错误中得到'赋值'。 任何帮助都会非常感激,因为我真的看错了! 感谢

1 个答案:

答案 0 :(得分:1)

您在上方struct listNode中提到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;