Односвязный список возвращает ошибку, хотя я его уже проверилC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Односвязный список возвращает ошибку, хотя я его уже проверил

Сообщение Anonymous »

При использовании односвязного списка мне предлагали использовать «if x != nullptr», но я не понимаю, почему это работает. В моем примере кода первый и второй операторы печати работают, но как только я добавляю третий, возникает ошибка nullptr. И это несмотря на то, что узел уже проверен на строке перед ним и успешно запущен.

Код: Выделить всё

ListNode* addTwoNumbers(ListNode* l1) { // l1 has 3 nodes containing a single digit
std::cout val;
l1 = l1->next;
if (l1 != nullptr) {
std::cout val;
}
std::cout val;
return 0;
}
Если вы закомментируете третий оператор печати, он распечатает первые два узла, но если вы добавите третий, возникнет ошибка. Я уже проверил if (l1 != nullptr) и успешно выполнил второй оператор печати, поэтому можно с уверенностью предположить, что l1->val также допустим, но это не так.

Подробнее здесь: https://stackoverflow.com/questions/786 ... checked-it
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»