[C++] Database pazienti: errore di runtime

di il
1 risposte

[C++] Database pazienti: errore di runtime

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;
	
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte