链表未插入新值"C language"



我遇到了一个问题,我的链表没有添加我给它的新值。这导致了分段错误,但我不知道如何修复它

当前代码

typedef struct node {
int value;/*data stored in the node  */
struct node *next;
/*pointer to the next node*/
} NODE;
void add(NODE **list, int n){//add_to_list in slides
NODE *new_node;
new_node = malloc(sizeof(NODE));
if (new_node == NULL) {
fprintf(stderr,"Error:malloc failed in add_to_front n");
exit(EXIT_FAILURE);
}
new_node->value = n;
new_node->next = *list;
//return new_node;
}
void print_list(NODE *list){
printf("n=========n");
for (;list;list=list->next){
printf("%dt",list->value);
}
printf("n=========n");
}
int main()
{
NODE *first=NULL;

print_list(first);
add(&first,10);
add(&first,30);
add(&first,20);
add(&first,40);
add(&first,30);
print_list(first);
}

更新

我添加了主要内容,但现在没有打印任何分割错误。。。

add(&first, number)

故障发生在加法函数中,更具体地说;新节点->next=*列表">

我尝试了取消引用和许多其他事情,但都无济于事

对取消引用的列表进行更改

(*list) = new_node;

以便将new_node值添加到列表中。

由于未更新头指针,因此未插入节点:在add()函数末尾添加此语句:

*list = new_node;

相关内容

  • 没有找到相关文章

最新更新