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 :

recuperer un pointeur à partir su string de son nom


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Architecte Solutions
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte Solutions

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut recuperer un pointeur à partir su string de son nom
    Bonjour,

    Je suis confronté à un petit soucis.

    J'aimerai à partir d'un chaine de caractère (char*) correspondant au nom d'un pointeur que j'ai déclaré pouvoir égalé un second pointeur au premier.

    Je m'explique:

    Je dispose d'un pointeur appelé pointeur1 qui pointe sur un objet appelé monObjet de type Objet.
    Je dispose également d'un pointeur appelé pointeur2 qui est pour le moment à NULL.

    Je souhaite que le pointeur pointeur2 pointe sur l'objet monObjet également.

    Mais pour des raisons trop complexe à expliquer, je ne veux pas taper simplement :

    Je souhaite en fait que pointeur2 pointe sur le même objet que pointeur1 en utilisant une chaine de caractères (char*) correspondante au nom du pointeur1 soit "pointeur1".

    Cela revient a passer de la chaine de caractère du nom du pointeur au pointeur en lui même.

    Faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pointeur2 = (Objet*) "pointeur1";
    ne résout pas mon problème étant donné que je récupère bien un pointeur sur un objet de type Objet mais pas sur celui que désigne pointeur1. Cela mène à une segmentation fault.

    Quelqu'un connait il une méthode pour résoudre mon problème?

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Déjà, le premier conseil à te donner est d'éviter "comme la peste" les char* pour représenter des chaines de caractères...

    Préfères leur, chaque fois que tu peux, la classe string, fournie par le standard et disponible dans l'espace de noms std par simple inclusion du fichier d'en-tête <strin>

    Tu trouveras une foule d'informations relatives aux premières questions que tu peux te poser sur le sujet sur la page de la FAQ qui leur est consacrée

    Sinon, ce que tu semble vouloir, ce n'est rien d'autre qu'un conteneur de type associatif (à l'intérieur duquel on peut accéder à un élément d'un type donné par une "clé" d'un autre type)...

    Ce genre de conteneur est également fournis par le standard sous le nom de map, également disponible dans l'espace de noms std (comme tout ce que le standard fournit, en l'occurrence) mais par inclusion du fichier d'en-tête... <map>, cette fois.

    Tu trouvera quelques réponses à des questions courante concernant la bibliothèque standard (souvent nommée STL) sur la page de la FAQ qu qui y est consacrée et, si l'anglais ne te rebute pas trop, des informations sympathiques concernant la classe map sur le site de sgi

    Pour toutes les questions qui n'auraient pas trouvé réponse dans les autres liens, n'hésite pas à faire une recherche sur le forum (c'est une véritable mine d'informations) ou à venir les poser directement
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre à l'essai
    Profil pro
    Architecte Solutions
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte Solutions

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Oui je suis conscient qu'utiliser std::string vaut mieux que d'utiliser un char*. Je ne le faisait que pour satisfaire les exigence d'une fonction écrite en c et n'acceptant que des char*.

    Sinon, j'ai essayer le map et cela marche parfaitement! Je ne connaissais pas d tout.

    Merci infiniment pour cette réponse construite et précise qui ma procuré la solution.

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Sais tu que la classe string est tout à fait compatible avec des char*

    Si tu dois-vraiment- renvoyer un char* à une fonction C, tu peux utiliser la fonction c_str()

    Et, dans l'autre sens, si tu déclare un argument de type référence constante sur string, un char* sera automatiquement coverti

    Pour tout le reste, l'idéal est de manipuler tes chaines sous la forme de string jusqu'à ce que tu n'aie pas le coix de passer à un char*
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/12/2013, 11h27
  2. Réponses: 19
    Dernier message: 02/02/2009, 18h06
  3. Réponses: 5
    Dernier message: 05/12/2008, 10h11
  4. Recuperer le contenu d'un fichier avec son nom et son chemin
    Par varfendell dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 16/07/2008, 09h47
  5. Réponses: 3
    Dernier message: 12/07/2006, 16h33

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