[C] fonction afficher matrice ...
dodo
-
dodo -
dodo -
Bonjour, je cherche donc à afficher une matrice avec une fonction.
j'y arrive sans fonction, ça vient de l'appel je pense.
je fais
void afficher(int nbLignes, int nbColonnes, int **M);
int main()
{
int M[3][2]={{1,2},{3,4},{5,6}};
afficher(3,2,M);
et il me renvoit " erreur: cannot convert ‘int (*)[4]’ to ‘int**’ for argument ‘3’ to ‘void affiche_tab(int, int, int**) "
j'ai essayé un tas d'autre trucs, mais je ne vois pas.
Merci de votre aide .
j'y arrive sans fonction, ça vient de l'appel je pense.
je fais
void afficher(int nbLignes, int nbColonnes, int **M);
int main()
{
int M[3][2]={{1,2},{3,4},{5,6}};
afficher(3,2,M);
et il me renvoit " erreur: cannot convert ‘int (*)[4]’ to ‘int**’ for argument ‘3’ to ‘void affiche_tab(int, int, int**) "
j'ai essayé un tas d'autre trucs, mais je ne vois pas.
Merci de votre aide .
A voir également:
- Afficher une matrice en c
- Afficher appdata - Guide
- Vous ne pouvez pas modifier une partie de matrice - Forum Excel
- Afficher un tableau en c - Forum C
- Afficher google en page d'accueil - Guide
- Afficher taille dossier windows - Guide
6 réponses
Pour passer un tableau multidimensionnel à une fonction, il faut savoir qu'on ne peut omettre qu'une seule dimension; la raison est évidente: il faut bien que la fonction puisse retrouver où se trouve un élément et pour cela, elle doit connaître au moins (n-1) dimensions.
Dans notre cas, tu ne peux déclarer la fonction que comme:
- void afficher(int nbLignes, int nbColonnes, int M[][2]);
ou
- void affiche(int nbLignes, int nbColonnes, int (*M)[2]);
L'appel, dans les 2 cas, sera comme tu l'as indiqué.
Si tu ne veux pas passer les dimensions du tableau de cette manière, il faut alors passer simplement un pointeur et ce sera à toi de calculer chaque élément.
Bonne continuation.
Dans notre cas, tu ne peux déclarer la fonction que comme:
- void afficher(int nbLignes, int nbColonnes, int M[][2]);
ou
- void affiche(int nbLignes, int nbColonnes, int (*M)[2]);
L'appel, dans les 2 cas, sera comme tu l'as indiqué.
Si tu ne veux pas passer les dimensions du tableau de cette manière, il faut alors passer simplement un pointeur et ce sera à toi de calculer chaque élément.
Bonne continuation.