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

Vic*_*ard 0 c++ pointers class list

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

class node {
public:
    string name;
    node *next;
    node(string init) {name = init; next = nullptr;
};
Run Code Online (Sandbox Code Playgroud)

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

node *root;
root->name = "Hello"; //Error
Run Code Online (Sandbox Code Playgroud)

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

jua*_*nza 5

您需要分配一个node对象root以指向.

node* root = new node;
Run Code Online (Sandbox Code Playgroud)

但要小心,现在你必须确保调用deleteroot在正确的时刻.您可以使用智能指针或自动存储对象来简化操作

node root;
root.name = "Hello";
Run Code Online (Sandbox Code Playgroud)