Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16

    Errore in compilazione del file [C]

    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

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Alcune possibili cause: link.
    Comunque è difficile essere più precisi senza vedere il codice...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16
    Quote Originariamente inviata da minomic Visualizza il messaggio
    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

  4. #4
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16
    Quote Originariamente inviata da Samuele_70 Visualizza il messaggio
    In C il confronto fa 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)){
    quindi dentro all'if ci devo mettere (strcmp(Elemento->identificativo, identificativo) giusto?

  6. #6
    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.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16
    Quote Originariamente inviata da Samuele_70 Visualizza il messaggio
    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)){
    Fatto, ma quando eseguo non mi cancella il numero che inserisco

  8. #8
    Questo è un'altro problema
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16
    Quote Originariamente inviata da Samuele_70 Visualizza il messaggio
    Questo è un'altro problema
    immaginavo, grazie ancora

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    16
    Quote Originariamente inviata da Samuele_70 Visualizza il messaggio
    Questo è un'altro problema
    i problemi vari li ho risolti.. però quando eseguo la prima volta lo cancella.. poi quando vado a rieseguirlo ritorna stampato..
    praticamente è come se me lo cancellasse solo in esecuzione.. ma non realmente dal file..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.