Fonction par pointeur [Résolu]

airness86180 3 Messages postés vendredi 6 mars 2009Date d'inscription 6 mars 2009 Dernière intervention - 6 mars 2009 à 11:58 - Dernière réponse : airness86180 3 Messages postés vendredi 6 mars 2009Date d'inscription 6 mars 2009 Dernière intervention
- 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
BunoCS 13907 Messages postés lundi 11 juillet 2005Date d'inscription 22 juin 2018 Dernière intervention - 6 mars 2009 à 15:12
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...

Merci BunoCS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de BunoCS
BunoCS 13907 Messages postés lundi 11 juillet 2005Date d'inscription 22 juin 2018 Dernière intervention - 6 mars 2009 à 14:48
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
airness86180 3 Messages postés vendredi 6 mars 2009Date d'inscription 6 mars 2009 Dernière intervention - 6 mars 2009 à 15:05
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
airness86180 3 Messages postés vendredi 6 mars 2009Date d'inscription 6 mars 2009 Dernière intervention - 6 mars 2009 à 15:32
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.