Bonjour a tous,

j'ai des questions sur les pointeurs et les tableaux multi dimension, et j'ai cherché déjà sur plusieurs forums, et je crois que cela m'a perdu encore plus qu'avant

j'ai une question simple, mais je n'ai pas trouvé de reponse claire encore...

j'aimerai par exemple écrire (en C) une fonction générique qui affiche une matrice :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void display(double **array, int dimx, int dimy)
et si je veux la tester, je cree une matrice de test comme ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
double A[2][3] = {{0 ,1 ,2}, {3, 4, 5}};
et la je ne sais pas comment passer ma matrice à ma fonction

je sais que si je mets ca, ca ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
display(A); // a priori ca serait l'adresse du premier élément de A?
display(&A[0][0]); // autre formulation de l'adresse du 1er elt ?
display(&A[0]);
Je ne suis pas sur, peut-etre est-ce du a une confusion entre C et C++, mais je ne sais pas trop si

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
A[i][j] = *( *(A+i) +j)
ou si 
A[i][j] = *( A+i*dimx +j)
je sais qu'un raisonnement de ce type fonctionnerait avec des tableaux de taille 1, on peut ecrire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
void display(double *array1D, int dim);
double A[3] = {0 ,1 ,2};
display(A,3);
mais qu'est-ce qui change quand on passe en dimension superieure ?
Autrement dit quel est le type de A dans :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
double A[2][3] = {{0 ,1 ,2}, {3, 4, 5}};
????
enfin du coup comment je peux créer un prorotype de fonction en C pour afficher A, qqchose qui me permettre de faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
double A[2][3] = {{0 ,1 ,2}, {3, 4, 5}};
double B[2][2] = {{0 ,1}, {3, 4}}
display(A,2,3);
display(B,2,2);
j'imagine que ma question a été posée moulte fois, mais a ce que j'ai compris (ou pas compris plutôt...) il y a des différences d’interprétation par le compilateur suivant qu'on est en C ou en C++, et je suis complètement perdu la....

merci beaucoup pour votre aide a tous ^^