gpt4 book ai didi

c - 将节点添加到单链表的末尾

转载 作者:行者123 更新时间:2023-11-30 15:39:31 25 4
gpt4 key购买 nike

我试图将一个节点添加到单链表的末尾,但遇到段错误(核心转储错误)

void slist_add_back(struct slist *l, char *str) {
struct snode *temp;

do {
l->front = l->front->next;
l->counter++;
} while (l->front !=NULL);

l->counter++;
temp = (struct snode *)malloc(sizeof(struct snode));
l->back = l->front;
l->back->next = temp;
l->back = temp;
}

最佳答案

当你写下:

do{
l->front = l->front->next;
l->counter++;

}while(l->front !=NULL);

最后l->front为空。现在 l->back = l->front; 意味着 l->back 也为 null。所以这个分配是错误的:

l->back->next = temp; // causing segfault

关于c - 将节点添加到单链表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com