为什么我的链接列表分配不能正常工作?

时间:2013-08-19 20:13:01

标签: c++ list class pointers

所以我创建了一个链表类:

class node {
public:
    string name;
    node *next;
    node(string init) {name = init; next = nullptr;
};

然后在main中我创建了一个节点指针并初始化了它指向的节点的名称。

node *root;
root->name = "Hello"; //Error

编译器不会将此调用为错误,但是当我运行程序时,它会停止在此代码行中运行。有谁知道为什么?

1 个答案:

答案 0 :(得分:5)

您需要为node指定一个root对象来指向。

node* root = new node;

但请注意,现在您必须确保在delete时恰好致电root。您可以使用智能指针或自动存储对象来简化操作

node root;
root.name = "Hello";