gpt4 book ai didi

c++ - 为什么我的列表上的迭代失败?

转载 作者:行者123 更新时间:2023-11-28 03:02:11 24 4
gpt4 key购买 nike

我目前正在通过斯坦福开放式 CS106B 学习,我在作业 3 的 B 部分遇到了问题。我得到了一个结构节点,如下所示:

struct Node {
string name; // my person's name
string killer; // who eliminated me
Node* next; // ptr to next node
Node(string name, Node* next) {...}
};

我必须实现一个生成节点列表的类。我的构造函数正常工作,但是当我尝试遍历列表时,我的程序崩溃了。我的迭代代码:

void AssassinsList::printGameRing() {
Node* current;
for(current = ring; current->next != NULL; current = current->next) {
cout << endl << " " << current->name << " is targeting " << current->next->name;
}
cout << endl << " " << current->name << " is targeting " << ring->name << endl;
}

但是,如果我使用 for 循环来循环我知道的特定列表长度所需的次数,它就可以工作。帮助?作业 pdf 的链接:http://www.stanford.edu/class/cs106b/homework/3-tiles-assassins/spec.pdf

谢谢!

最佳答案

我猜你没有将 * next 初始化为 nullptr。因此,对于您在节点之间设置的所有链接都很好,但列表中的最后一个对象指向垃圾。

抱歉,nullptr 是 c++11。如果您的编译器较旧,那么它只是 NULL

关于c++ - 为什么我的列表上的迭代失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com