Salve, scrivo per un problema che ho riscontrato in questo programma. Dopo diversi controlli ho scoperto che il problema sembra presentarsi nel delete finale. consigli? grazie.
#include <iostream>
#include <cstring>
using namespace std;
struct nodo
{
char n[15],
c[15];
int eta;
nodo *p;
};
int main ()
{
char nome[15],
cognome[15];
int eta,npaz,i=1;
nodo *pazienti,*inizio,*fine,*temporanea,*verifica,*penultimo;
cout<<"Numero di pazienti da leggere:";
cin>>npaz;
cout<<"Leggi Nome,Cognome ed eta':"<<endl;
cin>>nome;
cin>>cognome;
cin>>eta;
pazienti= new nodo; //inizio lettura
strcpy(pazienti->n,nome);
strcpy(pazienti->c,cognome);
pazienti->eta=eta;
pazienti->p=NULL;
inizio=pazienti;
verifica=pazienti; //variabile per il secondo output
fine=pazienti;
while(i<npaz)
{
pazienti= new nodo;
cin>>nome;
cin>>cognome;
cin>>eta;
strcpy(pazienti->n,nome);
strcpy(pazienti->c,cognome);
pazienti->eta=eta;
pazienti->p=NULL;
fine->p=pazienti;
fine=pazienti;
i=i+1;
} //fine lettura
cout<< "===============================================================" <<endl;
for(i=0;i<npaz;i++) //inizio stampa
{
cout<<inizio->n<<endl<<inizio->c<<endl<<inizio->eta<<endl;
inizio=inizio->p;
} //fine stampa
cout<< "==============================================================" <<endl;
cout<<"Inserire nome e cognome della persona che si vuole cancellare dalla lista:"<<endl; //inizio cancellazione
cin>>nome;
cin>>cognome;
pazienti=inizio;
if(strcmp(pazienti->n,nome)==0 && strcmp(pazienti->c,cognome)==0)
{
delete pazienti;
}
return 0;
}