IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Référence d'un pointeur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 45
    Par défaut Référence d'un pointeur
    bonjour,

    si j'ai un pointeur exemple basique:
    et je veux le passer en paramètre d'une fonction :
    je veux changer la valeur de ptr sans utiliser **pointeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void changer(int& *pointeur)
    {
    ..
    mais ça ne marche pas
    j'ai essayé :
    toujours ça ne marche pas
    comment faire? est ce que c'est possible?
    travailler avec des doubles triples ... pointeurs est difficile avec des algorithmes complexes
    et merci ^_^

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Le mieux est de ne pas travailler avec des pointeurs.
    Mais sans connaître le contexte, ça va être difficile de dire comment faire

    Quelles sont les erreurs ?

    Sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void changer(int * pointeur){
      *pointeur = 2;
    }

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    void changer(int *& ptr) devrait marcher...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    D'une manière général, quand tu veux récupérer une référence tu fais de cette manière:

    dans ton cas le type var est int*
    donc la reference sera:
    puis sans les parenthèse:
    C'est pourquoi perso je préconise le fait de placé la référence avant le type de variable à gauche et la référence ainsi que le nom de la variable à droite, ça évite les confusion et simplifie la gymnastique du cerveau pour placer comme il faut les références.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    void changer(int *& ptr) devrait marcher...
    C'est meêm carrément la bonne syntaxe.
    Si la variable ne change pas de valeur, il faut incriminer la méthode changer et non le passage des paramètres.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Ou son appel.

  7. #7
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    C'est pourquoi perso je préconise le fait de placé la référence avant le type de variable à gauche et la référence ainsi que le nom de la variable à droite, ça évite les confusion et simplifie la gymnastique du cerveau pour placer comme il faut les références.
    Viens partager ton point de vu! :p
    http://www.developpez.net/forums/d14...on-operateurs/

    Sinon pour t'en sortir avec les * et & c'est assez simple une fois dans la tête, tu lis de droite à gauche.
    Donc le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int*& rp; //référence d'un pointeur
    se lit de droite à gauche -> une référence (&) de pointeur(*) sur entier (int).
    Donc quand tu manipules ta référence, tu manipules le pointeur.
    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int&* pr; // pointeur sur référence
    se lit de droite à gauche -> un pointeur(*) sur une référence(&) d'un entier(int). Ce qui n'est pas légal en C++.

Discussions similaires

  1. Pointeur de pointeur/ Référence sur un pointeur
    Par gilloddon dans le forum C++
    Réponses: 7
    Dernier message: 16/06/2014, 11h43
  2. Réponses: 1
    Dernier message: 11/09/2012, 13h58
  3. Passage par référence versus par pointeur
    Par Seabast888 dans le forum Débuter
    Réponses: 14
    Dernier message: 14/09/2009, 18h17
  4. Réponses: 11
    Dernier message: 14/05/2009, 14h07
  5. Retour par référence d'un pointeur
    Par FunkyTech dans le forum C++
    Réponses: 16
    Dernier message: 22/07/2008, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo