Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    14

    Errore C: Errore di segmentazione (core dump creato)

    Ciao a tutti!
    sono alle prese con l'errore "Errore di segmentazione (core dump creato)". Di solito accade (mi pare) quando si accede ad un puntatore nullo, ma nel mio caso avviene non appena va in esecuzione il programma.
    Mi spiego, ho il mio programma (con tanto di main.c header.h e functions.c), già linkato e compilato, solo che non appena eseguo ottengo l'errore di segmentazione:

    codice:
    hino@hino-X51L:~/NetBeansProjects/Room_Assignment$ ./a.out 6
    Errore di segmentazione (core dump creato)
    Per capire quale riga dia il problema ho inserito nel codice una printf() che, a partire dall'inizio del main, sposto in giù.

    codice:
    int main(int argc, char** argv) {
            
        printf("Fin qui tutto bene!");
        
        int     N;            // Number of people
        struct  room    *a, *b;
        int    i, j;
        int     exit = 0;
        float   **d;            // N x N matrix containing the coefficient of affinity of each pair of people
        int    size;            // Communicator size    
        int     rank;            // id of the current process
        int     choose1, choose2;
        int     num_solutions;
        double *perf_MPI;
        double *perf;
        double t1, t2;
        
        /* parameters check */
        if(argc != 2){
            printf("Argument error: %s not recognized as argument\n", argv[0]);
            return -1;
        }
            
        N = atoi(argv[1]);
        num_solutions = ldexp((pow(N,2)-N), -1);
    ...
    L'output è sempre il seguente:

    codice:
    hino@hino-X51L:~/NetBeansProjects/Room_Assignment$ ./a.out 6
    Errore di segmentazione (core dump creato)
    Qualche idea su dove possa essere il problema?
    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Nessun errore in quel codice ... lo eseguo normalmente ... il problema è dopo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    14
    Grazie per la risposta, ma se il problema viene dopo, non dovrebbe eseguire intanto la printf()? come mai va in segmentation fault direttamente?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Io vedo il risultato della printf a video.

    Probabilmente è solo un problema di bufferizzazione. Prova a scrivere

    fflush(stdout);

    dopo la printf
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    14
    hai ragione, sono stato stupido a non pensarci! grazie mille

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.