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]
6
78
99
4
5
90
42
78

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