Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1243 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Help !! pb avec fonctions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Help !! pb avec fonctions

n°238512
*LighTninG​*
Posté le 02-11-2002 à 12:59:28  profilanswer
 

Salut !
 
J'ai un ptit pb à régler vis à vis des fonctions (moi y en a
être débutant).
 
Voila dans ce petit prog je veux donner à var1,var2 et var3 les
valeurs de v1,v2 et v3 calculés avec la fonction.
Cependant, apres avoir effectué la fonction dans le main, j'affiche les valeurs des 3 variables (qui devraient
donc etre 1,2 et 3), or celles ci sont toujours égales à 0!!
Donc ca va pas ya quelque chose que j'ai pas encore pigé dans
les fonctions, donc je vous remercie d'avance pour m'expliquer
où est le pb :)
 

Code :
  1. int fonction(int v1,int v2,int v3)
  2. {
  3. v1=1;
  4. v2=2;
  5. v3=3;
  6. return(v1,v2,v3);
  7. }
  8. main()
  9. {
  10. int var1=0,var2=0,var3=0;
  11. fonction(var1,var2,var3);
  12. printf("%i %i %i",var1,var2,var3); //pkoi cest tjs égal à 0???
  13. }


Message édité par *LighTninG* le 02-11-2002 à 13:00:17
mood
Publicité
Posté le 02-11-2002 à 12:59:28  profilanswer
 

n°238514
LetoII
Le dormeur doit se réveiller
Posté le 02-11-2002 à 13:10:03  profilanswer
 

*LighTninG* a écrit a écrit :

Salut !
 
J'ai un ptit pb à régler vis à vis des fonctions (moi y en a
être débutant).
 
Voila dans ce petit prog je veux donner à var1,var2 et var3 les
valeurs de v1,v2 et v3 calculés avec la fonction.
Cependant, apres avoir effectué la fonction dans le main, j'affiche les valeurs des 3 variables (qui devraient
donc etre 1,2 et 3), or celles ci sont toujours égales à 0!!
Donc ca va pas ya quelque chose que j'ai pas encore pigé dans
les fonctions, donc je vous remercie d'avance pour m'expliquer
où est le pb :)
 

Code :
  1. int fonction(int v1,int v2,int v3)
  2. {
  3. v1=1;
  4. v2=2;
  5. v3=3;
  6. return(v1,v2,v3);
  7. }
  8. main()
  9. {
  10. int var1=0,var2=0,var3=0;
  11. fonction(var1,var2,var3);
  12. printf("%i %i %i",var1,var2,var3); //pkoi cest tjs égal à 0???
  13. }






 
Bon je vais essayer d'être compréenssible (ça va me changer :D ).
 
Dans ta fonction tu fais un passage de paramètres par valeur, c'est à dire que lorsque tu appelle ta fonction, les valeurs de chaques argument sont copiée. C'est sur ces copies que travaille la fonction. Lorsque tu resort de la fonction tu n'a donc pas modifié tes variables. Si tu veux que ta fonction modifie les valeurs des arguments que tu lui passe tu doit faire un passage de paramètre par adrese. Dans ce cas là tu vas indiquer à la fonction l'adresse des variables contenant les arguments, tu poura donc modifier ces variables.
 
Ca donne qqc comme ça:
 

Code :
  1. void fonction(int *v1,int *v2,int *v3)
  2. {
  3. *v1=1;
  4. *v2=2;
  5. *v3=3;
  6. }


---------------
Le Tyran
n°238524
*LighTninG​*
Posté le 02-11-2002 à 13:29:46  profilanswer
 

Ok, j'ai compris que dans ce cas là faut utiliser des pointeurs
mais le prog ainsi modifié plante au lancement...
 

Code :
  1. void fonction(int *valeur1,int *valeur2,int *valeur3)
  2. {
  3. *valeur1=1;
  4. *valeur2=2;
  5. *valeur3=3;
  6. }
  7. main()
  8. {
  9. int *var1,*var2,*var3;
  10. fonction(var1,var2,var3);
  11. printf("%i %i %i \n",var1,var2,var3);
  12. }


 
Donc keski faut faire?


Message édité par *LighTninG* le 02-11-2002 à 13:30:36
n°238527
lorill
Posté le 02-11-2002 à 13:31:55  profilanswer
 

Code :
  1. main()
  2. {
  3. int var1,var2,var3;
  4. fonction(&var1,&var2,&var3);
  5. printf("%i %i %i \n",var1,var2,var3);
  6. }


 
Le & devant une variable indique qu'on prend l'adresse mémoire de cette variable.

n°238530
*LighTninG​*
Posté le 02-11-2002 à 13:48:48  profilanswer
 

Ok merci bcp LetoII et lorill, ca fonctionne maintenant :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Help !! pb avec fonctions

 

Sujets relatifs
[PHP] Probleme avec les fonctions[JAVA] Help! upload + envoi d'email avec pièce jointe
[MFC] Comment faire un bouton "Help" ou "Aide"[HELP NEEDED] programme permettant la gestion d'un emploi du temps
Bleme d'allignement vertical sur ma page central ! HELPquel forum en php? Help
[C++] Erreur à la compil , help svphelp inhiber ctrl-alt-sup en vb
Objets, Classes, Fonctions avec objets en paramétres, *, & :Prob.Insérer des contacts dans Outlook par programmation ... HELP!!!
Plus de sujets relatifs à : [C] Help !! pb avec fonctions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR