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 :
et si je veux la tester, je cree une matrice de test comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part void display(double **array, int dimx, int dimy)
et la je ne sais pas comment passer ma matrice à ma fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part double A[2][3] = {{0 ,1 ,2}, {3, 4, 5}};
je sais que si je mets ca, ca ne marche pas :
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
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 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 A[i][j] = *( *(A+i) +j) ou si A[i][j] = *( A+i*dimx +j)
mais qu'est-ce qui change quand on passe en dimension superieure ?
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);
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 :
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....
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);
merci beaucoup pour votre aide a tous ^^
Partager