分配给不兼容的指针类型双指针
assignment to incompatible pointer type double pointer
我正在尝试在我的链表中的 *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
}
}
您将 next
声明为指向 struct node
的指针,但您的代码中没有 struct node
(只有 typedef node
)。
您需要为结构命名,以便在 next
:
的声明中引用它
typedef struct node {
目前 struct node
指的是一个不同的、不相关的结构(您尚未定义)。
我正在尝试在我的链表中的 *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
}
}
您将 next
声明为指向 struct node
的指针,但您的代码中没有 struct node
(只有 typedef node
)。
您需要为结构命名,以便在 next
:
typedef struct node {
目前 struct node
指的是一个不同的、不相关的结构(您尚未定义)。