Les tableaux
à deux dimensions en C
Traduction:
elle est immédiate car la syntaxe donnée en algorithmique
est celle du C, donc:
int tab2d[25][80];
/* déclaration d'un tableau à deux
dimensions (25 lignes et 80 colonnes) d'entiers */
Le compilateur C réserve une zone
contigüe en mémoire pour tout le tableau. Ainsi, il
réserve une zone contigüe de 8000 octets (25 * 80 * 4) pour
tab2d qui va contenir les lignes les unes derrière les autres.
Ainsi pour le tableau suivant:
int tailleL = 4;
int tailleC = 2;
int
tab[tailleL][tailleC]={{6,78},{99,4},{5,90},{42,78}};
il va réserver une zone contigüe de 32 (2*4*4)
octects comme suit:
tab2d[0][0]
|
tab2d[0][1] |
tab2d[1][0] |
tab2d[1][1] |
tab2d[2][0] |
tab2d[2][1] |
tab2d[3][0] |
tab2d[3][1] |
ATTENTION
(rappel): En C, il n'y a pas de vérification de
débordement de tableau
à l'exécution: par
exemple, l'erreur suivante, tab2d[3][2]=2;
ne sera pas détectée par le compilateur ni même
à l'éxécution mais va écrire dans une zone
de 4 octets en dehors du tableau.
suivant
plan