赋值给不兼容的指针类型双指针

时间:2017-04-22 15:22:03

标签: c pointers struct singly-linked-list

我正在尝试在链接列表中的* add指针后添加节点 我的结构和代码如下,但在(* add)中显示错误 - > next = new_node:

    typedef struct {
    int data;
    struct node* next;
    }node;

    void create_node(node **add,int dat)
    {
        if((*add) == NULL)
        {
            (*add) = (node*)malloc(sizeof(node));
            (*add)->data = dat;
            (*add)->next = NULL;
        }

        else
        {
            node *new_node = (node*)malloc(sizeof(node));
            new_node->data = dat;
            new_node->next = (*add)->next;
            (*add)->next = new_node; //assignment to incompatible pointer type error
        }


    }

1 个答案:

答案 0 :(得分:1)

您已将next声明为指向struct node的指针,但代码中没有struct node(仅限typedef node)。

您需要为结构命名,以便在next的声明中引用它:

typedef struct node {

目前struct node指的是一个不同的,无关的结构(您尚未定义)。