C++ 指针导致访问冲突

C++ 指针导致访问冲突,c++,pointers,C++,Pointers,我有一个控制台应用程序从控制台读取一些字符数据,然后放入一个结构中。这个结构被用作链表,当它被构造时,我保持一个指针指向第一个列表元素,一个指针用于遍历列表。 发生在我身上的是,当我第一次运行列表并将其内容写入控制台时,一切都很顺利。当我稍后想要将我的运行指针设置为lists last元素时,它会不断崩溃,并出现c000005访问冲突错误。 我将向您介绍我代码中有趣的部分: 我的结构定义: struct musikdaten { char interpret[150]; char

我有一个控制台应用程序从控制台读取一些字符数据,然后放入一个结构中。这个结构被用作链表,当它被构造时,我保持一个指针指向第一个列表元素,一个指针用于遍历列表。 发生在我身上的是,当我第一次运行列表并将其内容写入控制台时,一切都很顺利。当我稍后想要将我的运行指针设置为lists last元素时,它会不断崩溃,并出现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(it!=NULL){

无法解释您应该使用
NULL
初始化
next
成员,以指示列表的结尾:

it->next = new musikdaten;
it->next->next = NULL;
或添加默认构造函数:

struct musikdaten {
musikdaten() { next = NULL; /*TODO: init other members*/}     
char interpret[150];
char titel[150];
struct musikdaten* next;
};

你能做什么呢?
it->next
it->next
可以是空的,将空指针放在任何地方,即使是在它上面,也不只是在它上面,然后写下消息,如果它不正确。我在这里似乎找不到任何错误。
struct musikdaten {
musikdaten() { next = NULL; /*TODO: init other members*/}     
char interpret[150];
char titel[150];
struct musikdaten* next;
};