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 :
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
#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.