Связанный список Ошибка обработки простого исключения кода происходит, и программа терпит неудачу - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь реализовать очень простой код связанного списка, но произошла ошибка необработанного исключения. Я хочу получить доступ ко 2-му элементу данных с первого раза. У меня ошибка при печати в визуальной студии. Возникает ошибка обработки исключения, и программа перестает работать.

Ошибка: 0

Необработанное исключение в 0x00105485 в LinkedList.exe: 0xC0000005: Место чтения нарушения доступа 0x00000000

class Node{
public:
    int data;
    Node *next;

};

int main() {
    Node *p = new Node();
    p->data = 10;
    p->next = NULL;

    Node *q = new Node();
    q->data = 9;
    q->next = NULL;
    //now print this
 p->next->data 
    system("pause");

}

1 Ответ

0 голосов
/ 24 февраля 2020

Вы определяете p->next = NULL, а затем пытаетесь прочитать p->next->data. Это означает, что вы пытаетесь прочитать данные из NULL. Если вы хотите создать связанный список из ваших узлов, вам нужно связать их самостоятельно, IE сделает что-то вроде этого:

Node *p = new Node();
p->data = 10;
p->next = NULL;

Node *q = new Node();
q->data = 9;
q->next = NULL;

p->next = q;  // Link the two nodes

//now print this
std::cout << p->next->data;
system("pause");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...