Informations

Auteur(s) Olivier Bonaventure
Date limite Pas de date limite
Limite de soumission Pas de limite

Etiquettes

Se connecter

Pointeurs et tableaux à deux dimensions


Pointeurs et tableaux à deux dimensions

En C, il est possible d'accéder aux données stockées dans un tableau à deux dimensions via la notation a[i][j] mais aussi en utilisant des pointeurs. Considérons le fragment de code ci-dessous :

int m[3][4]= { { 1, 2, 3, 4} ,
            { 5, 6, 7, 8} ,
            { 9, 10, 11, 12} };

printf("%p %d %d %d\n",m, m[1][2], m[0][5], m[2][2]);

Un compilateur Java n'accepterait pas de compiler ce programme qui tente d'accéder à l'élément m[0][5] de la matrice, élément qui n'existe pas sur base de l'initialisation du tableau m. De nombreux compilateurs C acceptent ce fragment de code sans contrainte. Lorsque le programme s'exécute il affiche :

0x7fff5fbff750 7 6 11

Parmi les fragments de programme ci-dessous, un seul utilisant la notation avec les pointeurs est correct et affiche la même sortie. Lequel ?