Ogni nodo ha un puntatore a `record_t', che contiene solo `nome', `cognome' e flag. Puoi usare `puntatore->id per sapere di che tipo si tratta e fare un cast per accedere agli ulteriori dati;codice:typedef enum record_id { REGISTRAZIONE, ALBERGO, ACCOMPAGNATORE } record_id_t; typedef char string_t[N]; #define BASIC_MEMBERS \ record_id_t id; \ string_t nome, cognome; \ int flag typedef struct record { BASIC_MEMBERS; } record_t; typedef struct registrazione { BASIC_MEMBERS; string_t reg; } registrazione_t; typedef enum qualifica_albergo { 3STELLE, 4STELLE } qualifica_albergo_t; typedef struct albergo { BASIC_MEMBERS; qualifica_albergo_t q; } albergo_t; ... typedef struct list { struct list *precedente, *successivo; record_t *record; } list_t;

Rispondi quotando