Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    34

    [C] problema con array di strutture

    ciao a tutti,
    ho un problema:
    devo creare un array di strutture ALLOCATO DINAMICAMENTE;
    ogni elemento di questo array è una struttura del tipo

    codice:
    struct configurazione
    {
    int pedine;
    int cella;
    unsigned int *vett;
    };
    dove il terzo campo è un vettore da allocare a sua volta dinamicamente...

    per la definizione di questo vettore ho utilizzato
    codice:
    struct configurazione * database;
    mentre per l'allocazione di questo array;
    codice:
    database=malloc(SIZE*sizeof ( struct configurazione *))
    dove SIZE è un valore dipendente da alcuni parametri in ingresso da tastiera.

    devo inoltre inizializzare gli elementi dell'array "database" in modo che due elementi consecutivi abbiano gli stessi valori per ogni campo eccetto che per il campo cella, che deve essere:

    elemento zero: pedine=2; cella=0; vettore= qualcosa;
    elemento uno: pedine=2; cella=1; vettore= lo stesso qualcosa;

    per fare ciò ho pensato di fare:
    codice:
    for (i=0;i<SIZE;i++)
    {
    inizializzo il primo elemento
    for(j=i; i<j+numero-1; i++)  //numero nel caso specifico è 2, ma può variare da 2 a 4
    {       // j+numero-1 mi consente di copiarlo 1 volta se voglio 2 elementi consecutivi simili
     database[j+1].pedine=database[j].pedine;
    database[j+1].cella= database[j]. cella +1;
    più quello che riguarda la copia del terzo campo  (è un vettore)
    }
    Il problema è che la copia di tutti e tre i campi non va "sempre bene"...cioè funziona perfettamente con i primi due elementi, ma poi sballa completamente...

    qualcuno sa dirmi dove e se c'è l'errore???

    PS ho compilato con gcc sotto linux e non dà errore, per provare i valori ho fatto girare il programma sotto gdb e ci sono parecchi errori, non di sintassi, ma di valori dei campi.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    La prima cosa che saltava all'occhio era un * di troppo.
    codice:
    database=malloc(SIZE*sizeof ( struct configurazione ));
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    34
    si scusa mi è scappato l'asterisco

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.