私のプログラムは3つの操作を行うことになっています:
- 入れる
- 消去
- 循環リンク リストに表示します。
私の問題は削除機能にあります。コードは次のとおりです。
void c_list::del()
{
int num;
if(isempty())
cout<<"List is Empty!"<<endl;
else
{
node *temp1=first;
node *temp2=NULL;
cout<<"Enter the number that u want to DELETE:"<<endl;
cin>>num;
while(temp1->next!=first && temp1->info != num)
{
temp2=temp1;
temp1=temp1->next;
}
if(num != temp1->info )
cout<<"your number was not found in the list"<<endl;
else
{
if(temp2!=NULL)
{
temp2->next=temp1->next;
cout<<temp1->info<<" was deleted"<<endl;
}
else
{
first=temp1->next;
cout<<temp1->info<<"was deleted"<<endl;
}
}
}
system("pause");
}
削除機能は次のように機能します。ユーザーが番号を入力すると、プログラムはその番号を検索し、番号が見つかったらリストから削除します。
ここでの問題は、ユーザーがリストに存在しない番号を入力すると、「アプリクラッシュウィンドウ」が表示されることです (つまり、このウィンドウ:プログラムが応答していません)。この場合、エラーメッセージが表示されます。 (「あなたの番号はリストにありませんでした」)!!
何が問題なのか教えてもらえますか?