我正在尝试在链接列表中的* 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
}
}
答案 0 :(得分:1)
您已将next
声明为指向struct node
的指针,但代码中没有struct node
(仅限typedef node
)。
您需要为结构命名,以便在next
的声明中引用它:
typedef struct node {
目前struct node
指的是一个不同的,无关的结构(您尚未定义)。