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

Langage C++ Discussion :

Récursivité sur les pointeurs


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Par défaut Récursivité sur les pointeurs
    Bonsoir,
    je travaille sur un programme manipulant des pointeurs. J'ai un bug très vague qui ne m'indique pas d'où peut venir le problème et je voulais savoir si une configuration similaire à celle ci-dessous pouvait être la source du dysfonctionnement.

    Je vous expose le problème simplifié :
    J'ai une fonction (que l'on notera f) qui prend un pointeur en paramètre et renvoie un autre pointeur.
    Je procède à une itération sur cette fonction et sur un pointeur, ce qui me donne à peu près le code ci-dessous.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int x = 5; //x est variable
    Expression* e;
    for (int i = 0 ; i < x ; i++)
    {
     e = f(e);
    }
    Cela ne risque-t-il pas de provoquer une sorte de conflit de récursivité au niveau du pointeur ?

    Merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour et bienvenue,

    Je ne crois pas que cela pose trop de problème ( enfin tout dépend de ce que fait f() ).
    Je veux dire, ce que vous passer, et que vous retourne, c'est des pointeurs.
    Si on passe un pointeur, que l'on retourne directement, en fait, on aura une copie, mais qui pointe sur la même chose.

    Maintenant, si f() prend le pointeur, change l'objet pointé, cela peut posé problème ( enfin, si la nouvelle valeur pointé, retourné n'est pas correct ).

    Sinon, avec une protection sur le pointeur passé par paramètre ( const correctness ) il n'y aura aucun problème ( enfin d'après moi ). après je veux bien voir les réponses des Guru.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour et bienvenu,
    Le pointeur que retourne f respecte-t-il les conditions nécessaires à l'appel de f ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/03/2012, 20h26
  2. Question sur les pointeurs.
    Par Chrisemi dans le forum C++
    Réponses: 5
    Dernier message: 28/10/2005, 23h47
  3. Dev c++ en rade sur les pointeurs ?...
    Par Magicien d'Oz dans le forum C
    Réponses: 17
    Dernier message: 13/10/2005, 19h38
  4. questions sur les pointeurs
    Par Hyoga dans le forum C++
    Réponses: 17
    Dernier message: 08/01/2005, 23h25
  5. Pb de débutant sur les pointeurs!!!
    Par benji17c dans le forum C
    Réponses: 6
    Dernier message: 30/09/2003, 17h50

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