ciao a tutti,
ho un problema:
devo creare un array di strutture ALLOCATO DINAMICAMENTE;
ogni elemento di questo array è una struttura del tipo
dove il terzo campo è un vettore da allocare a sua volta dinamicamente...codice:struct configurazione { int pedine; int cella; unsigned int *vett; };
per la definizione di questo vettore ho utilizzato
mentre per l'allocazione di questo array;codice:struct configurazione * database;
dove SIZE è un valore dipendente da alcuni parametri in ingresso da tastiera.codice:database=malloc(SIZE*sizeof ( struct configurazione *))
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:
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...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) }
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.

Rispondi quotando