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)
编译器不会将此称为错误,但是当我运行程序时,它会停止在这行代码中工作.有谁知道为什么?
您需要分配一个node对象root以指向.
node* root = new node;
Run Code Online (Sandbox Code Playgroud)
但要小心,现在你必须确保调用delete上root在正确的时刻.您可以使用智能指针或自动存储对象来简化操作
node root;
root.name = "Hello";
Run Code Online (Sandbox Code Playgroud)