C++ - 创建链表时出现段错误
C++ - Getting segfault while creating a Linked List
我正在尝试创建一个简单的链表和一个变量 t 通过它读取。但是,我在一个我认为不会得到的地方遇到了段错误。这是我的代码
#include <iostream>
#include <string>
using namespace std;
struct Node {
string name;
Node *next;
};
int main() {
Node *one;
one->name = "one";
Node *two;
two->name = "two";
Node *three;
three->name = "three";
Node *reader = one;
while (reader != NULL) {
cout << reader->name << endl;
reader = reader->next;
}
}
我在代码周围添加了一些 cout,并意识到段错误发生在之后
one->name = "one";
我在C++方面不是很有经验,但我认为当堆栈在内存中溢出时会发生段错误。我不明白程序应该如何耗尽那里的内存。我将不胜感激任何帮助找出问题。谢谢。
你创建了一个指向 Node 的指针,但你永远不会创建一个 Node-object。
用
Node* one = new Node();
不要忘记delete one;
在您的程序结束时。
基本上你已经为指向Node
的指针分配了内存,但内容是内存中的一些随机地址。您需要实际创建一个 Node-对象并将其地址分配给您的指针。如果没有,则您正在尝试取消引用随机地址。(将其与编写int i;
进行比较,如果未初始化,它将保持随机int
)
相关文章:
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 如何摆脱C ++中的分段错误错误?
- Clang 8 带有静态 constexpr 和数组的链接器错误 - 错误是什么以及如何解决它?
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 如何解决分段错误错误C++
- 作为参数模板的模板类:MSVC 错误 - 错误 C2977:模板参数过多 (C++98)
- 安卓工作室 |CPP 文件错误错误: 位图库中对"AndroidBitmap_unlockPixels"的未定义引用
- 卷曲给出分段错误错误
- 无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
- 错误错误 C2872:"布尔值":kinect.h 的不明确符号
- C++打印模板容器错误(错误:"运算符<<"的不明确重载)理解?
- 结构的分割错误错误
- 为什么此代码返回分段错误错误?
- 错误错误:无法编译内置功能
- 分段错误错误C++
- C++ 1Z 错误:错误:演绎指南中声明中的显式限定
- 使用对数据类型的向量的哈希表中的分段错误错误
- 为什么此代码会导致分段错误错误
- JNA结构字段值错误
- C++段故障错误