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:
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 int mat[lignes][colonnes];
1ere question: ces deux déclarations sont elles équivalentes ?
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]){ }
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:
2eme question: Pouvez vous me dire ce que je ne fais pas bien ?
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])); } }
Merci
Arnaud
Partager