我目前正在通过斯坦福开放式 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/