Tableaux de structures
Une variable structurée est composée d'éléments hétérogènes mais de taille fixe.
Considérons la déclaration :
# define MAX 20 struct etudiant
{
char nom[20] ;
char prenom[20] ;
float moyenne ;
} ;
L'instruction :
sizeof(struct etudiant) ;
retournera la valeur 44 pour 44 octets (=20+20+4), à supposer qu'un float soit sur 4 octets.
De même, si le type « T_etudiant » est défini :
Sizeof (T_etudiant)
retourne aussi 44 pour 44 octets Il est donc possible de créer un tableau contenant des éléments du type d'une structure donnée.
Il suffit de créer un tableau dont le type est celui de la structure et de le repérer par un nom de variable.
#define MAXETU 500
#define MAX 20
typedef struct date
{
int jour,mois, annee;
} T_date;
typedef struct etudiant
{
char nom[MAX], prenom[MAX];
float moyenne;
T_date date_naissance;
} T_etu;
typedef T_etu T_tab_etu[MAXETU ];
Lors de la déclaration de variable :
T_tab_etu module;
On a défini le tableau "module", où chaque case représente alors une structure du type T_etu. En considérant les dernières fonctions écrites, nous pourrons écrire les instructions :
saisie_etudiant(&(module[i]));
affiche_etudiant(module[i]);
Si l'on a déclaré "i" comme un entier et initialisé ce dernier avec un indice licite.
vous avez remarqué que les identificateurs de type que nous avons défini commencent toujours par le suffixe "T_", ce n'est pas obligatoire. Un identificateur valide suffit.
Cependant, cette convention facilite la lecture du code. Nous avons utilisé comme convention : le suffixe "T_" est utilisé pour débuter l'identificateur d'un type déclaré par le programmeur.
A vous d'utiliser, les conventions qui semblent les plus claires.