我实现了一个简单的链表。看哪!
struct List{
List *next;
bool last;
string data;
};
List *head;
但是,当我尝试使用函数构建它,然后遍历它时,程序崩溃并出现错误 0x00005(这是内存错误,对吗?)。在构建函数中,一切似乎都很好,但否则会引发错误。这是我列出的功能:
void mkList(List *ptr, int num){
if(num != 0){
ptr = new List;
ptr->data = "asd";
if(num == 1)ptr->last = true;
else ptr->last = false;
mkList(ptr->next,num-1);
}
}
我试图遍历列表的方法主要是:
int main(){
mkList(head,5);
List *ptr = head;
while(!ptr->last){
cout << ptr->data <<endl;
ptr = ptr->next;
}
return 0;
}
在第二个元素之前一切似乎都很好,我什至可以计算出第一个元素的数据!我做错什么了?