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.