Quote:
|
Originariamente inviato da nefer
Ciao a tutti!!
Non riesco a venire a capo di questo problema!
Ho scritto un programma che utilizza una semplicissima lista per memorizzare i dati! Su questa lista ho implementato una funzione chiamtata "inserisci" e una funzione chiamata "crea". Quest'ultima serve per cancellare i dati presenti e inizializzare nuovamente la lista!
Quando faccio partire il programma la inserisci funziona! dopo aver inserito qualche elemento chiamo la crea e successivamente inserisco dei nuovi elementi. A questo punto, generalmente al terzo inserimento, il programma termina con segmentation fault. L'errore avviene al momento della chiamata malloc.
Il problema si verifica solo se chiamo la crea il cui codice è il seguente:
testa=NULL;
while(temp!=NULL)
{
temp1=temp;
temp=temp->pross;
temp1->pross=NULL;
free(temp1);
}
temp e temp1 sono dello stesso tipo di testa ovviamente!
Voi vedete in questo frammento l'origine del mio problema?????
|
beh questo pezzo di codice non può creare una lista se non c'è nemmeno una malloc, fa solo casini con la memoria..
prova a postare tutta la funzione con i vari parametri magari ne veniamo a capo.