Una struttura è un tipo di dato definibile dall'utente, e rappresenta un insieme di campi costituiti da tipi-base, a differenza dell'array, di tipo differente tra di loro; ad esempio:
struct indirizzo{
char citta[128];
char via[128];
int civico[5];
}
è la dichiarazione di una struttura contenenti i campi citta, via, civico del tipo sopra indicato. Agli elementi della struttura si accede mediante l'operatore "." (punto).
Ad esempio, definita una variabile
indirizzo var_indirizzo;
Si assegnano dei valori nella maniera che segue:
var_indirizzo.citta = "stringa cittą"; var_indirizzo.via = "stringa via"; var_indirizzo.civico = 57;
Leggermente diversa è l'utilità delle union, anche se il loro utilizzo è pressochè analogo a quello di una struct. Es.:
union miaunione{
int numero;
float piu_grande;
}
Fa sì che venga allocato lo spazio per la più grande delle variabili, poichè queste si trovano a condividere il medesimo spazio in memoria. L'impiego di union è utile principalmente per rendere portabili alcuni tipi di dati sotto piattaforme differenti.