Fonctions tableaux arguments

haikei00X Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde.
J'ai un petit souci et j'ai besoin de votre aide.Je veux comprendre pourquoi lorsqu'on a une fonction qui a un tableau comme argument on écrit l'entête suivante:
(par exemple)
void fonction(int T[])
Mais lors de l'appel dans le main on écrit
fonction(T);
et non pas fonction(T[])
J'ai vraiment envie de comprendre ce qui se passe au niveau de la mémoire.
MERCI

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Lorsque tu déclares un tableau, tu utilises la notation :
int T[TAILLE];
Le nom du tableau est T. C'est le nom de la variable qu'il faut envoyer en paramètre.

void fonction(int T[])
Tu mets int T[], pour dire que préciser le nom de la variable (ici T), et son type.
Précision : int T[] est équivalent à int *T dans ce contexte. Cela signifie que tu précises que la variable T est de type pointeur.

Du coup, il faut bien faire fonction(T); tu envoies la variable T en paramètre. T[] tout court n'a pas de sens.

Cdlt,
1