Fonction par pointeur [Résolu]

Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
6 mars 2009
- - Dernière réponse : airness86180
Messages postés
3
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
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
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
88
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 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
88
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
Statut
Membre
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
Statut
Membre
Dernière intervention
6 mars 2009
0
Merci
merci de ton aide, j'ai compris !!!
Commenter la réponse de airness86180