Fonction par pointeur [Résolu]

Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Dernière intervention
6 mars 2009
- - Dernière réponse : airness86180
Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Dernière intervention
6 mars 2009
- 6 mars 2009 à 15:32
Bonjour,

je suis debutant en C/C++ mais a la lecture de mon cours, je ne comprends pas pourquoi ce code tout simple (surtout ne vous moquez pas , c pour tester) ne fonctionne pas en envoyant l'adresse du pointeur a l'appel  :

# include

int main()
{
  double val = 2.0 ;
  double *valeur ;
  void donneusedordre(double *parametre) ;

  valeur = &val ;
  donneusedordre(&valeur) ;
  std::cout << *valeur << "\n";
}

//********************************************
void donneusedordre(double *parametre)
{
  *parametre =(*parametre)*2 ;
}

et qu'il faut envoyer à l'appel de la fonction donneusedordre directement le nom du pointeur "valeur" au lieu de l'adresse :

# include

int main()
{
  double val = 2.0 ;
  double *valeur ;
  void donneusedordre(double *parametre) ;

  valeur = &val ;
  donneusedordre(valeur) ;
  std::cout << *valeur << "\n";
}

//********************************************
void donneusedordre(double *parametre)
{
  *parametre =(*parametre)*2 ;
}

Il doit y avoir quelque chose que j'ai mal compris sur les pointeurs :lol:
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
14338
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
17 janvier 2019
5758
3
Merci
Tu dois déclarer tes fonctions dans le fichier où elles sont codées.
Concernant l'argument, c'est selon: les 2 sont possibles:
donneusedordre(valeur);
ou
donneusedordre(&val);

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
14338
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
17 janvier 2019
5758
0
Merci
Salut,
Un conseil, relis tes notes de cours: on ne déclare pas de fonction à l'intérieur d'une autre (3e ligne de la fonction main à mettre en dehors)

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Dernière intervention
6 mars 2009
0
Merci
bonjour,

merci pour ton conseil. je croyais qu'on devait déclarer les fonctions à utiliser au moins dans le programme principal main. Concernant la partie appel de la fonction avec un parametre qui est un pointeur, pourquoi faut il envoyer le nom du pointeur (ici valeur) et pas l'adresse de ce pointeur "&valeur".  Pourtant j'ai vu des programmes ou il faut envoyer l'adresse en argument...
Commenter la réponse de airness86180
Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Dernière intervention
6 mars 2009
0
Merci
merci de ton aide, j'ai compris !!!
Commenter la réponse de airness86180

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.