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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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