Pointer un tab multi-dimension
Bonjour a tous,
mon premier post sur ce forum, débutant en C.
Je cherche a declarer et définir un pointeur vers un tableau de dimension nxm.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
/* Declarations */
int tab[2][2];
int *p[2];
/* Definition du tableau */
tab[0][0]=1;
tab[0][1]=2;
tab[1][0]=3;
tab[1][1]=4;
/* Definition du pointeur */
p[0]=tab[0];
p[1]=tab[1]; |
Derriere, je cherche à afficher les valeurs du tableau en bouclant sur le tableau de pointeur:
Code:
1 2 3 4 5 6
|
int i=0;
while (i<4){
printf("%d\n",*(p[0]+i));
i++;
} |
Le code fonctionne nickel mais quelque chose me chiffonne. Suis je obliger de passer par un tableau de pointeur (ici p[2]) dès que mon tableau de int dépasse 1 dimension? Pourquoi ne peut on pas faire un:
et ensuite pour acceder aux valeurs de tab puisque tout est "aligné" dans la mémoire?
Merci de lever le doute ;)