Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68

    [C] Creazione liste dinamiche

    Devo creare una lista dinamica per gestire il tempo di un turno di un giocatore in un gioco (per comodità vi riporto il topic che ho creato stamattina)

    Sono sempre dietro a creare quel maledetto gioco... E adesso devo sapere quanto tempo scorre tra l'inizio e la fine di un turno di un giocatore.
    Il tempo di ogni singola mossa lo devo memorizzare in una lista dinamica.
    Ho creato il seguente codice, ma non funziona e mi blocca il programma...

    codice:
    ...
    ...
    
    struct tempo {
        int valore;
        struct tempo *next;
    };
    
    ...
    ...
    ..
    
    void Gioco()
    {
        ...
        time_t inizio;
        time_t fine;
        int dimArray = numGiocatori * MAX_NUM_TENTATIVO;
        struct tempo tempoImpiegato[dimArray];
        ...
        ...
        
                inizio = time(NULL);
                ...
                ...
                ...
                fine = time(NULL);
                tempoImpiegato[t].valore = fine - inizio;
                for(j = 0; j < dimArray; j++)
                {
                    struct tempo *tempoImpiegato[j] = NULL;
                    struct tempo *nuovo;
                    nuovo = (struct tempo*)malloc(sizeof(struct tempo));
                    nuovo -> valore = fine - inizio;
                    nuovo -> next = tempoImpiegato[j];
                    tempoImpiegato[j] = nuovo;
                }    
                printf("\nTempo impiegato per fare la mossa: %d secondi", tempoImpiegato[t].valore);
               ... 
    }
    Penso sia sbagliata l'allocazione, vero?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    A parte altre considerazioni che per ora si possono tralasciare, ma quanto vale

    t

    quando la usi come indice [t] ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    E' la variabile di un ciclo for:
    for(t = 0; t < MAX_NUM_TENTATIVO; t++)

    MAX_NUM_TENTATIVO vale 3.

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

    1) vedere parte del programma

    2) non avere indicazioni migliori di non funziona ... si blocca il programma

    non potra' mai consentire di darti indicazioni o spiegazioni.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    68
    Il fatto è che il problema riguarda proprio quella parte del programma, cioè il seguente codice:

    codice:
    for(j = 0; j < dimArray; j++)
                {
                    struct tempo *tempoImpiegato[j] = NULL;
                    struct tempo *nuovo;
                    nuovo = (struct tempo*)malloc(sizeof(struct tempo));
                    nuovo -> valore = fine - inizio;
                    nuovo -> next = tempoImpiegato[j];
                    tempoImpiegato[j] = nuovo;
                }    
                printf("\nTempo impiegato per fare la mossa: %d secondi", tempoImpiegato[t].valore);
    Infatti io dicevo che secondo me è l'allocazione ad essere sbagliata (quella dentro il ciclo for, per intenderci), in quanto se la levo non mi dà più problemi...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma perche' crei

    struct tempo *tempoImpiegato[j] = NULL;

    all'interno del ciclo for?

    Questo array scomparira' dopo il primo ciclo ...

    Non si capisce quale ragionamento segui nel fare quello che fai all'interno del for ...
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.