Un carnet garde 500 fiches, chacune portant un nom de 11 caractères au plus et une note entière.
Objectif
Calculer la taille d'une fiche, celle du carnet, et l'adresse d'une fiche donnée.
La déclaration
struct Fiche {
char nom[12];
int note;
};
Pourquoi 12 et non 11
Un nom de 11 caractères occupe 12 octets, la place de l'octet nul comprise. Le champ suivant tombe alors sur une adresse multiple de quatre sans qu'aucun remplissage ne soit nécessaire, ce qui est une coïncidence heureuse et non une règle : c'est l'alignement qui décide, pas l'intention.