首页 > 解决方案 > 链表简单代码异常处理错误来了,程序失败

问题描述

我正在尝试实现非常简单的链表代码,但发生了未处理的异常错误。我想从一开始就访问第二个元素数据我在将它打印到 Visual Studio 时出错。出现异常处理错误,程序停止工作。

错误是:0

LinkedList.exe 中 0x00105485 处的未处理异常: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");

}

标签: c++linked-list

解决方案


您正在定义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");

推荐阅读