C - ошибка сегментации в цикле while с указателем - PullRequest
0 голосов
/ 19 сентября 2018

Я получаю ошибку сегментации в цикле while, но не знаю почему.

enter image description here

1 Ответ

0 голосов
/ 19 сентября 2018

Вот код:

while (temp->next != NULL)
{
    temp = temp->next;
}

Итак - что происходит, когда temp начинается как или становится NULL?Скажите в конце связанного списка.

Ответ - ваше условие цикла while проверяет NULL->next, что является нарушением памяти, поскольку ваша программа (вероятно) не владеет памятью, скажем, по адресу0x00000008 (NULL равен нулю, а -> создает смещение памяти при компиляции).

Как насчет:

while (temp != NULL)
{
    temp = temp->next;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...