我有一个控制台应用程序从控制台读取一些字符数据,然后放入结构中。这个结构被用作链表,当它被构造时,我保持一个指向第一个列表元素的指针和一个用于遍历列表的指针。 发生在我身上的是,当我第一次运行我的列表并将其内容写入控制台时,一切都正常运行。当我以后想要将我的运行指针设置为列表的最后一个元素时,它会因c000005访问冲突错误而崩溃。 我会给你我的代码的有趣的部分:指针导致访问冲突
struct musikdaten {
char interpret[150];
char titel[150];
struct musikdaten* next;
};
打印清单的内容:我的结构
定义
while (it != NULL) {
cout << it->interpret << ": " << it->titel << "\n";
cout << "next: " << it->next << "\n";
it = it->next;
}
设置“它”的名单最后一个元素:
while (true) {
if (it->next == NULL) {
cout << "Assigning some memory...\n";
it->next = new musikdaten;
break;
}
else it = it->next;
}
但是,这最后一部分不断崩溃时列表包含两个以上的元素。 注意:当从控制台读取内容时添加新的列表元素时,下一个指针总是被初始化为NULL。
你是什么COUT'它 - > next', 'it-> next'可以为空 –
将NULL指针检查放在哪里,即使在它上面,不仅仅在它上面 - >接下来,如果它不正确,则写出消息。我似乎无法在这里找到任何错误。 – Dejan