【发布时间】:2016-06-01 17:32:22
【问题描述】:
我正在尝试创建一个简单的链表和一个遍历它的变量。但是,我在一个我认为不会出现的地方遇到了一个段错误。这是我的代码
#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*指针分配内存。 -
你需要更少的星星,更少的arrers和moar dots。
-
我在 C++ 方面的经验不是很丰富 -- 那么最好买一本好的 C++ 书籍并阅读示例,边读边理解所有内容。你犯了一个没有好书能说明的根本性错误。
标签: c++ list segmentation-fault