Effettivamente non si capisce bene se abbia bisogno di una struttura dati che sia composta da più dati o se abbia bisogno di una struttura dati che gli permetta di essere vista come più dati.

La differenza, insomma, fra una struct e una union.

La struct rappresenta il classico record: una variabile composta da più variabili potenzialmente di tipo diverso.

La union rappresenta una variabile che può essere interpretata, di volta in volta, in modo diverso.

Esempio:
codice:
struct record {
   int intero;
   char c1;
   char c2;
   char c3;
   char c4;
};

union unione {
   int intero;
   char c1;
   char c2;
   char c3;
   char c4;
};
La prima (record) occupa 8 byte ed è composta da una variabile intera e 4 variabili carattere.
La seconda occupa 4 byte e può essere vista (indifferentemente) come un intero o una stringa di 4 caratteri (ciascuno dei quali indirizzabile separatamente).


Oppure ha semplicemente bisogno di una stringa...


Ciao.