PDA

Visualizza la versione completa : [c] problema con struct e allocazione memoria


davide356
05-05-2013, 23:47
Buonasera, ho un problema con gli struct e volevo un consiglio da voi. Io devo creare un programma che ha n stazioni in cui passano un numero variabile di treni. Ho pensato quindi di fare uno struct che rappresenti i treni ed è questo:


typedef struct treno{
char id[10];
int oraArr;
int oraPart;
}treno;

Poi ho fatto lo struct per le stazioni :

typedef struct stazione{
char id[10];
int n;
treno treni[];} stazione;

ora come faccio a impostare la dimensioni dell'array "treni" di una stazione ad esempio (stazione stazioni[ j ]; stazione[ j].treni)?

Grazie in anticipo per la risposta

oregon
05-05-2013, 23:50
O imposti una dimensione massima, ad esempio

treno treni[10];

o usi un puntatore per l'allocazione dinamica quando serve

treno *treni;

davide356
06-05-2013, 00:06
no non posso mettere una lunghezza standard per l'array perchè sono di dimensioni diverse.

Io ho fatto questo:

stazioni[j].treni=realloc(stazioni[j].treni, ntreni*sizeof(treno));

è corretto?

oregon
06-05-2013, 00:08
Sì ... assicurati che il valore iniziale del puntatore prima della prima realloc sia NULL

davide356
06-05-2013, 00:13
Perchè in esecuzione mi da "Segmentation fault (Core dump)"

davide356
06-05-2013, 00:37
Mi da errore alla seconda stazione... credo che ci sia qualcosa di sbagliato con i puntatori

davide356
06-05-2013, 00:39
ok risolto

oregon
06-05-2013, 01:03
Meglio così ...

Loading