[C] incompatibilité arguments, objets

Fermé
theisma Messages postés 3 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 19 mars 2008 - 19 mars 2008 à 11:33
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 19 mars 2008 à 12:35
Bonjour,
dans mon code C, j'ai un tableau de int a deux dimensions noté comme suit

int tab[nbs][dmax];

et une fonction qui prend en paramètre un tableau a deux dimenstions comme suit

int fonction(int* class,int** tab)

j'ai mis avec des * et non des [] car le compilateur ne prenait pas
int fonction(int class[],int tab[][])


pouvez vous m'aider svp a comprendre pouquoir je ne peux pas faire
int tab[nbs][dmax];
puis l'utiliser en paramètre de cette fonction.
int fonction(int* class,int** tab)

j'ai cette erreur : attention : passing argument 2 of 'fonction' from incompatible pointer type


Merci a tous

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
19 mars 2008 à 12:35
Comme on me l'a fait remarquer sur ce forum, un tableau n'est pas un pointeur, même si il a de nombreuses similitudes. (à toi de retrouver les messages)
Je ne sais pas trop comment faire, mais j'ai plusieurs idées.
essai
int fonction(int class[],int tab[nbs][dmax])
En précisant la taille du tableau peux être le compilo ralera moins (il me semble quque sur un tableau il n'y a qu'une dimension qu'on peut ne pas donner explicitement)
essai en mettant des const
int fonction(int* class,int**const tab) 
OU
int fonction(int* class,int* const* const tab) 
peut être que c'est ça qui lui va pas, la possibilité de modifier *tab alors que dans un tableau tu n'aura pas le droit.
0