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 :

cast sur un pointeur


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2018
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 124
    Points : 55
    Points
    55
    Par défaut cast sur un pointeur
    Bonjour à tous,

    j'ai un problème pour "caster" un pointeur, voici ce que je fais :
    j'ai créé un typedef union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef union
    {
      struct_1   str1;
      struct_2   str2;
      struct_3   str3;
    }union_Str;
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct
    {
      float f1;
      float f2;
      ...
    } struct_1;
    Dans une fonction je déclare un pointeur et une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void function(void)
    {
      struct_1  *structVar;
      union_Str unionVar;
     
    ...
      structVar= (struct_1 *)(&unionVar);
    Mais j'ai une remarque "use of old-style cast.

    J'ai donc pensé mettre un "static_cast", comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      structVar= static_cast<struct_1 *>(&unionVar);
    Mais j'obtiens la remarque suivante "static_cast from 'union_Str *' to 'struct_1 *', which are not related by inheritance, is not allowed"

    donc je ne sais pas quoi faire pour "caster", quelqu'un aurait une idée ?

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 642
    Points
    7 642
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    structVar = &unionVar.str1;

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2018
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 124
    Points : 55
    Points
    55
    Par défaut
    Exacte, merci beaucoup

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 31/12/2005, 16h01
  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