簡単なリンクリストを実装しました。見よ!
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;
}
2 番目の要素まではすべて正常に動作しているように見えます。最初の要素のデータをカウントすることもできます。私は何を間違えましたか?