Я пытаюсь написать двойной связанный список на C. И теперь я пишу функцию элемента getLast
:
Dlist* getLast(Dlist **list)
{
if (list != NULL)
{
while((*list) != NULL)
(*list) = (*list)->next;
}
return (*list);
}
Я получаю ошибку сегментации :
Программа получила сигнал SIGSEGV, Ошибка сегментации.0x080485ce в getLast (list = 0x804a008) в src / dlist.c: 29 29 (* list) = (* list) -> next;
Я добавляю один элемент, и это нормально.Когда я пытаюсь добавить второй элемент, я получаю ошибку сегментации.
Я вызываю эту функцию так:
Dlist* addItemAtStart(Dlist** list, Pair* value)
{
Dlist* last = NULL;
last = getLast (*list);
...
}
Что не так?