Bonjour,

Bon avant tout désolé pour cette question qui as peut être (probablement) déja été traitée.

Voila je déclare dans un programme, une matrice d'entiers:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
int mat[lignes][colonnes];
Je souhaite passer cette matrice en parametre d'une fonction sous la forme d'un pointeur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
void f(int ***m){
}
 
//ou
 
void f(int *m[][colonnes]){
}
1ere question: ces deux déclarations sont elles équivalentes ?

Puis je souhaite dans ma fonction f accéder à l'adresse des éléments de m mais je n'y parvient pas, j'ai éssayé plusieurs choses mais les valeurs des adresses ne sont pas correctes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
for (int i=0; i < 2; i++) {
   for (int j=0; j < 2; j++){
      printf("%p\n",&(m[i][j])); //passage de m sous forme int *m[][colonnes]
      printf("%p\n",&m[i]+j); //passage de m sous forme int ***m
      printf("%p\n",&(mat[i][j]));
   }
}
2eme question: Pouvez vous me dire ce que je ne fais pas bien ?

Merci
Arnaud