Я пытаюсь узнать о связанных списках, а также овладеть указателями.Прямо сейчас программа, над которой я работаю, сортирует имена в связанном списке.По сути, пользователь вводит имя, и это имя отправляется между двумя другими элементами в списке (если список не пустой).У меня есть структура под названием «Узел», которая содержит указатель на следующий узел и часть данных (строка).Вот где я.Моя программа успешно добавляет имя, если указатель головы равен nullptr.Затем он устанавливает newNode-> рядом с nullptr, чтобы я мог быть определен как конец списка.
Вот этот код:
// create a new node
Node* newNode = new Node;
Node* trail = nullptr;
Node* current = head;
// initialize the value of the new node
newNode->data = name;
// Make new node point to the previous first node
//base case 1
if (head == nullptr) {
head = newNode;
newNode->next = nullptr;
return true;
}
Проблема заключается в следующем разделекода:
if (head != nullptr) {
current = head;
trail = current;
current = current->next;
while (name.at(1) > current->data.at(1)) {
trail = current;
current = current->next;
}
if (current->next = nullptr) {
trail->next = newNode;
newNode->next = nullptr;
}
if (current->next != nullptr) {
newNode->next = current;
trail->next = newNode;
}
}
Исключение выдается.Сообщение об ошибке говорит, что это был nullptr.У меня вопрос, что это значит?Как возникает эта ошибка, и как лучше всего ее исправить?Извините, если этот вопрос повторяется, но другие подобные вопросы не имеют ничего общего со связанными списками.Спасибо!