![]()
Tableaux multidimensionnels ![]()
![]()
![]()
![]()
![]()
Suivant: Initialisation Début: Relations entre tableaux et Précédent: Exercice
Paragraphes
Tableaux multidimensionnels
Déclarations
En C, un tableau multidimensionnel est considéré comme étant un tableau dont les éléments sont eux mêmes des tableaux. Un tableau à deux dimensions se déclare donc de la manière suivante :
int t[10][20];Les mêmes considérations que celles que nous avons développées sur les tableaux à une dimension s'appliquent, à savoir :
- 1.
- à la déclaration, le compilateur allouera une zone mémoire permettant de stocker de manière contiguë 10 tableaux de 20 entiers, soit 200 entiers ;
- 2.
- toute référence ultérieure à t sera convertie en l'adresse de sa première ligne, avec le type pointeur vers tableau de 20 int.
Accès aux éléments
L'accès à un élément du tableau se fera de préférence par l'expression t[i][j].Passage en paramètre
Lorsqu'on désire qu'un paramètre formel soit un tableau à deux dimensions, il faut le déclarer comme dans l'exemple suivant :
#define N 10 p(int t[][N]) { ... /* corps de p */ }On peut en effet omettre la taille de la première dimension, mais il est nécessaire d'indiquer la taille de la seconde dimension, car le compilateur en a besoin pour générer le code permettant d'accéder à un élément. En effet, si T est la taille des éléments de t, l'adresse de t[i][j] est : adresse de.Le compilateur à besoin de connaître N, ce sera donc une constante. Par contre, la taille de la première dimension pourra être passée en paramètre, comme nous l'avons fait pour les tableaux à une seule dimension. Exemple :
#define P 10 void raz_mat(int t[][P], int n) { int i,j; for (i = 0; i < n; i++) for (j = 0; j < P; j++) t[i][j] = 0; }raz_mat
ne sera appliquable qu'à des tableaux dont la première dimension à une taille quelconque, mais dont la seconde dimension doit impérativement avoir P éléments.
30/9/1997