我尝试用 C 编写一个双向链表。现在我编写一个 getLast
元素函数:
Dlist* getLast(Dlist **list)
{
if (list != NULL)
{
while((*list) != NULL)
(*list) = (*list)->next;
}
return (*list);
}
我得到一个 segmentation fault :
Program received signal SIGSEGV, Segmentation fault. 0x080485ce in getLast (list=0x804a008) at src/dlist.c:29 29 (*list) = (*list)->next;
我添加了一个元素,回答没问题。当我尝试添加第二个元素时,出现段错误。
我这样称呼这个函数:
Dlist* addItemAtStart(Dlist** list, Pair* value)
{
Dlist* last = NULL;
last = getLast (*list);
...
}
怎么了?
最佳答案
您的代码返回 NULL 指针。
while(*list->next != NULL)
关于c - 获取C双向链表中的最后一个元素错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082526/