Passage de parametres sans parler de pointeurs, c pas possible, regarde je t'explique, je prends l'exemple d'une fonction que tu as surement du utiliser :
char strcpy(char *dest, const char *src);
lorsk tu appelles strcpy, tu fais de cette maniere :
char szdest[256]; char szsrc[] = "Coucou";
strcpy(szdest, szsrc);
Tu as passé en parametre de la fonction, tes deux tableaux...Mais la particularité du C, c que lorsk tu ecris :
szdest;
Tu designes en fait ceci : &szdest[0], qui est l'adresse du premier element du tableau, et ceci peu impote le type du tableau (int, char...etc). Donc si tu veux passer un tableau a une fonction que tu crées toi mm, le prototype peut etre :
int coucou(int *hello); int coucou(int hello[]); int coucou(int hello[520]); //peu importe la 'taille ke tu mets' (ici 520), elle ne sera pas prise en compte
Ces trois ecritures sont totalement equivalentes. Et pour l'appeler, tu feras de cette maniere :
int hello[500];
coucou(hello);
Et dans ta fonction coucou, tu utilises le tableau de la mm maniere que dans la fonction appelante :
int coucou (int *hello) {
coucou[2] = coucou[0] + coucou[1];
.... }
Pour connaitre la taille de ton tableau dans 'coucou' , il te faudra ajouter un parametre ki contiendra cette taille, paskun appel a sizeof te donnera 4 (taille d'un pointeur car ca designera, comme dit plus haut, &hello[0]). Voila :
int coucou(int *hello, int len);
Voila, j'espere avoir répondu a la question, sinon, si kelks aspects restent obscurs, n'hesite pas.
Bonne chance
++
+2(p - n)
|