Bonjour,
Je ne débute pas le C, mais pourtant il y a un truc que j'ai du mal à saisir...
En C :
Quand on veut passer un int en paramètre d'une fonction.
Soit on le passe par valeur : int arg
ou par référence : int *arg
Je comprend bien que dans le cas d'un passage par valeur, il y a recopie du paramètre sur la pile du programme.
Et dans le cas du passage par référence, c'est le pointeur qui est recopier, donc l'adresse de la variable arg passé en paramètre (on travaille donc directement dans la fonction sur la valeur passé en paramètre).
Ce que je ne comprend pas, c'est pour les char*.
Quand on passe un char* en paramètre d'une fonction, il faut faire char** pour le passé par référence...
Pourquoi ??? car char* devrait déjà être un passage par référence ??? Esct-ce lié au compilateur ???
Idem pour certaine structure... qu'il faut passer en ** dans les fonctions pour les passer par référence.
J'espère que j'ai bien posé clairement ma question (et qu'on ne me répondra pas par un cours sur le passage par valeur ou par référence que j'ai déjà assimilé il y a bien longtemps)...
Merci,
Jock