Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [c] inizializzazione matrice non consentita

    buongiorno, sto facendo un mini progettino in c ed ho un problema che a me è inspiegabile. il sorgente è troppo lungo da copiare qua e quindi l'ho caricato qua. il problema sta a riga 291 quando inizializzo la matrice che mi da errore di segmentazione in esecuzione, senza quel doppio for funziona ma gli elementi della matrice sono null. dove sbaglio? proprio non lo capisco grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il problema è nella linea 290

    init(mosse);

    in cui mosse è un puntatore non inizializzato e usato in seguito nella init
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    che lo risolvo con
    Codice PHP:
    Coda *mosseNULL;
    mosse=malloc(100); 
    giusto?
    mmm, mi risulta ancora la matrice null però

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Perché

    malloc(100)

    ?

    Coda è un puntatore a struttura ... devi allocare lo spazio per una struttura, non per 100 byte ...

    Di quale matrice parli ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    La malloc alloca solo spazio. Con calloc inizializzi ogni settore a 0.
    Esempio banale:
    codice:
     char *s;
     s= malloc((int)sizeof("Hello World!"));
     puts(s); //non stampa niente
     s="Hello World!"; //inizializzo l'area puntata da s nell'heap
     puts(s); 
    free(s); //importante
    s=0; //utile
    http://www.cplusplus.com/reference/cstdlib/malloc/

  6. #6
    giusto, quindi mosse= malloc(sizeof(Coda));
    se non sbaglio un'altra volta.

    parlo della matrice mangiati che scrivo sul file da riga 268 con
    fprintf(f, "re: %s\n", mangiati[0][0]);
    anzi ora con quella malloc mi da errore di segmentazione quando arriva a tale riga. che casino che sto facendo
    edit: mi sono appena accorto che ci va il %d al posto del %s in quei fprintf, era quello. che idiota che sono

    grazie a tutti, ora funziona tutto

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    mangiati è un array di interi non di stringhe
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.