begin process at 2012 02 11 22:39:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

char* et char** (paramètre de fonction in ou out)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

char* et char** (paramètre de fonction in ou out)

vendredi 2 juillet 2004 à 11:28:04 | char* et char** (paramètre de fonction in ou out)

jockos

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
vendredi 2 juillet 2004 à 14:15:46 | Re : char* et char** (paramètre de fonction in ou out)

FreeYo


FreeYo

En fait, le ** permet de passer par référence un pointeur. C'est donc l'adresse qui est modifiée et non la valeur pointée.

Dans l'exemple du char**, l'adresse du pointeur est modifiée de manière à pointer sur les données désirées sans avoir à effectuer ni allocation mémoire, ni copie de ces données.
vendredi 2 juillet 2004 à 16:46:51 | Re : char* et char** (paramètre de fonction in ou out)

vecchio56

Administrateur CodeS-SourceS
Si tu comprends comment ca marche pour les int, tu comprends comment ca marche pour les char aussi. Ce que tu dois savoir, c'est qu'en fait il n'y a qu'un type de passage de paramètres en C (le passage pas reference, c'est du C++). Quand tu passe un pointeur, c'est comme si tu passais un variable normale...sauf que c'est pointeur, donc tout se fait de la même façon. Si tu veux modifier un char*, il faut que tu passe un pointeur dessus, et donc passer un char**. Quand tu passes un char*, tu ne le modifie pas, tu modifies juste ce sur quoi il pointe!
dimanche 4 juillet 2004 à 19:11:33 | Re : char* et char** (paramètre de fonction in ou out)

jockos

Ok, merci pour ces explications messieurs...

J'ai compris maintenant...


Cette discussion est classée dans : fonction, valeur, référence, char, paramètre


Répondre à ce message

Sujets en rapport avec ce message

Thread paramètre [ par nicompx ] Salut, Je démarre plusieurs thread qui exécute une fonction. Cette fonction reçoit en paramètre une structure. Si je passe l'adresse de la structure e Cast de pointeurs [ par zaraki21 ] Bonjour, je travaille actuellement sur une application en C/C++ dans laquelle je dois réaliser une fonction qui prend en paramètre un unsigned char*. pointeur à la fin "\0" [ par avg ] j'ai une fonction qui demande un pointeur sur unsigned char mais il faut qu'il contient à la fin "\0" comment je peut faire [code=cpp] unsigned char Problème Liaison RS232 [ par maximus4 ] Bonjour,j'utilise un code que j'ai trouvé sur le site pour lister les ports RS232.J'ai 4 ports com le résultat m'affiche 4 com1code :void SonarFrm::li la fonction atoi [ par fiorellafatma ] [^^pirate]salut à tous j'ai fait cette instruction mais cela a affiché un message d'erreur pourquoi j=atoi(*chr)-'a' il m'a dit que atoi ne peut pas c Convert char** en int sous c [ par clavz40 ] Bonjour a tous, Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos. J'avais besoin d'une fon exercice sur le C [ par linx2816 ] je cherche les codes des programmes ci-dessous. Es-ce que quequ'un pourrait m'aider pour ces exos. svp; merci d'avance! Exercice1 Compteur de mots


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales