素晴らしいサイト..私のプログラムにこのエラーがあり、私が free() ポインタ型を構造化すると発生します..理由を理解できないようです..しかし、ポインタがグローバルに宣言されているという事実に関係していると思います. ご協力ありがとうございました!
*「prev」、「current」、および「head」はグローバルであり、malloc() を使用して別の関数に割り当てられることに注意してください。
コード:
void approve_delete(int* delete_request){
if(*delete_request == 0){
cout<<" there are no more delet requests\n";
return;
}
char choice[5];
char ch;
current = head;
Prev = head;
while (current->user.id != MAX_ID ){
if(current->user.want_delete == true){
cout<<"name : "<<current->user.name<<" "<<current->user.last_name<<" id: "<<current->user.id<<endl;
ch=0;
while( ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N') {
cout<<"approve delete? Y/N or (Q)exit\n";
cin.width(5);
cin>>choice;
ch=choice[0];
switch (ch) {
case 'y':
case 'Y':
item* Temp = current;
Prev->next = Prev-> next->next;
current=Prev->next;
free(Temp); //here the error occur!
cout<<"in";
*delete_request -= 1;
cout<<"student deleted\n";
break;
case 'n':
case 'N':
break;
case 'q':
case 'Q':
return;
}
}
}
Prev = current;
current = current->next;
}
}