ciao a tutti,
quando vado a compilare il mio file mi da questo errore:
double free or corruption (!prev): 0x0000000001c18010 ***
Annullato (core dump creato)
a cosa puo essere dovuto?
Grazie
ciao a tutti,
quando vado a compilare il mio file mi da questo errore:
double free or corruption (!prev): 0x0000000001c18010 ***
Annullato (core dump creato)
a cosa puo essere dovuto?
Grazie
Alcune possibili cause: link.
Comunque è difficile essere più precisi senza vedere il codice...
codice:void eliminaElemento(pElemento *pE) { pElemento elementoPrec; pElemento nuovoElemento; nuovoElemento=*pE; FILE *fp; fp = fopen("prova.txt", "a"); printf("Inserisci il numero\n"); scanf("%s %lg %lg", identificativo, &reale, &immaginario); while(nuovoElemento != NULL){ if((nuovoElemento->identificativo == identificativo) && (nuovoElemento->reale== reale) && (nuovoElemento->immaginario==immaginario)){ nuovoElemento = malloc(sizeof(struct _ElementoLista)); elementoPrec = nuovoElemento; nuovoElemento = nuovoElemento->next; if(nuovoElemento!= NULL) { elementoPrec->next = nuovoElemento->next; free(nuovoElemento); } } } fprintf(fp, "%s %g %g\n", identificativo, reale, immaginario); fclose(fp);
lo scopo del file è dare la possibilità di eliminare una riga da un file digitandola da tastiera
questa è solo la funzione che poi richiamo nel main chiedendo se si vuole eliminare un file.
Ultima modifica di LeleFT; 02-01-2015 a 15:36 Motivo: Aggiunti i tag CODE
In C il confronto fra stringhe non si effettua con l'operatore ==, devi comparare le due stringhe identificativo con la funzione di libreria strcmp()
codice:if((nuovoElemento->identificativo == identificativo) && (nuovoElemento->reale== reale) && (nuovoElemento->immaginario==immaginario)){
Ultima modifica di Samuele_70; 03-01-2015 a 12:56
01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
All errors are undocumented features waiting to be discovered.
Esattamente, inserisci la strcmp() all'interno dell'if, e poi ne testi il valore che restituirà
codice:if(( strcmp(nuovoElemento->identificativo, identificativo)==0) && (nuovoElemento->reale== reale) && (nuovoElemento->immaginario==immaginario)){
01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
All errors are undocumented features waiting to be discovered.
Questo è un'altro problema
01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
All errors are undocumented features waiting to be discovered.