Passage en parametre d'un tableau
Bonjour a tous,
Voila, j'essai de passer un tableau en parametre dans une fonction. le probleme c'est que ca ne marche pas ...
Je vous donne un code simplifié:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int main()
{
int ret;
int array[10];
ret = fun(array);
}
int fun (int **tab)
{
tab[0] = 0;
tab[1] = 1;
tab[2] = 2;
tab[3] = 3;
return 1;
} |
En fait j'aimerais affecter les valeurs 1,2,3 dans le tableau "array" mais ca ne marche pas ...
Savez vous pourquoi ?
Merci.
Re: aide svp pour passage en parametre d'un tableau
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
int main()
{
int ret;
int array[10]={0};
ret = fun(array);
}
int fun (int *tab)
{
tab[0] = 0;
tab[1] = 1;
tab[2] = 2;
tab[3] = 3;
return 1;
} |
Essai cela.
Je ne vois pas pourquoi tu as mis deux * ??? Tu aurais pu mettre deux etoiles si tu appelés la fonction de la sorte :
array désigne déja une adresse ( adresse du premier élément du tableau) Si tu fais &array alors tu passerais en paramètre l'adresse où est stocké l'adresse du premier élément du tableau. :?
Re: aide svp pour passage en parametre d'un tableau
Citation:
Envoyé par hegros
Je ne vois pas pourquoi tu as mis deux * ??? Tu aurais pu mettre deux etoiles si tu appelés la fonction de la sorte :
A condition que array fût un pointeur, ce qui n'est pas le cas. (un pointeur n'est pas un tableau et inversement !)
Le type de &array est int (*)[10] et non int **.
Code:
1 2 3 4 5 6 7 8 9
|
int main (void)
{
int array[10];
int **pa = &array; /* main.c:4: warning: initialization from incompatible pointer type */
int (*pb)[10] = &array;
return 0;
} |