【问题标题】:Why is my Linked List assignment not working as it should?为什么我的链接列表作业不能正常工作?
【发布时间】:2013-08-19 20:13:01
【问题描述】:

于是我做了一个链表类:

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

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

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

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

【问题讨论】:

  • 我发布然后删除了您在问题中的错字答案,缺少}
  • 它指向什么节点?为什么你认为它指向一个节点?
  • 抱歉打错了

标签: c++ list class pointers


【解决方案1】:

你需要为root分配一个node对象来指向。

node* root = new node;

但要小心,现在您必须确保在适当的时候通过root 致电delete。您可以使用智能指针或自动存储对象来简化事情

node root;
root.name = "Hello";

【讨论】:

  • 非常感谢。不过,这给我带来了另一个问题。有没有办法编写一个类析构函数,以便删除列表的所有元素,还是我必须有一个单独的函数?
  • @user2457666 是的,当然。查找析构函数。此外,还有很多关于 SO 的链表相关问题。
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多