我有以下代码片段:
struct Node
{
Node* left;
Node* right;
string data;
};
void test()
{
Node thing;
thing.data = "h";
thing.left = NULL;
thing.right = NULL;
cout<< "Thing data = " << thing.data << endl;
Node* thing2;
thing2->data = "f";
thing2->left = NULL;
thing2->right = NULL;
cout<< "Thing2 data = " << thing2->data << endl;
}
我遇到的问题是,thing2-> data =“ f”在运行时产生分段错误。我已经通过GDB运行该程序并收到此错误,但是我无法弄清楚它的含义:
读取共享库的符号++。做完了
事物数据= h
节目接收信号
EXC_BAD_ACCESS,无法访问
记忆。原因:13地址:
0x0000000000000000 0x00007fff874d59a3
在std :: string :: assign()中
任何帮助都会很棒。谢谢!
最佳答案
Thing2是一个未初始化的指针。
它没有指向有效的Node对象。
您应该分配它:
thing2 = new Node;
或使其指向有效的Node对象:
thing2 = & thing;