【发布时间】:2016-08-30 09:09:47
【问题描述】:
好吧,我正在尝试用很少的代码编写一个链表(一个非常简单的链表)。这是我的代码:
#include <iostream>
using namespace std;
class node
{
public :
int data = 0;
node* next;
};
node node_obj;
int main()
{
node* head;
node* node_pointer = head;
node_pointer = node_obj.next;
node_pointer->data = 4;
node_pointer = node_obj.next;
node_pointer->data = 5;
node_pointer = node_obj.next;
node_pointer->data = 6;
node_pointer = node_obj.next;
return 0;
}
我一开始只是想让它工作,这就是为什么没有添加、打印或删除功能。
无论如何,每次我运行程序时它都会崩溃,并且我得到一个错误代码 C0000005。
据我所知,这是一个表明内存访问冲突的错误,但我找不到解决方案。
更新:
我更改了我的代码,现在它看起来像这样(仅包括更改的部分):
class node
{
public :
node();
int data = 0;
node* next;
};
node::node()
{
next = new node;
}
所以现在我有一个初始化的“新”指针,错误代码更改为 c00000fd
【问题讨论】:
-
可能是因为您使用了未初始化的指针:
node* head = new node;会有所帮助 -
@Garf365 你的意思是
new因为这是一个c++问题? :P -
@KostasRim 已更正;)
-
阅读一些例子和A good book关于c++。
-
重新更新:这不是初始化
next指针的好值。想想新节点的构造函数内部发生了什么。
标签: c++ linked-list crash