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 :

manipulation d'une union


Sujet :

Langage C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut manipulation d'une union
    Bonjour,

    J'ai un problème sur la manipulation de la structure union.

    Voici la structure de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ap_coeff_t
     
     
        typedef struct ap_coeff_t {
          ap_coeff_discr_t discr;
          union {
            ap_scalar_t* scalar;
            ap_interval_t* interval;
          } val;
        } ap_coeff_t;
    Dans mon cas le champ val est toujours initialisé du type ap_scalar_t*, mais j'ai toujours une erreur de compilation si je met un cast ou pas avec le bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ap_mpq_set_scalar(mpq_val,  (ap_scalar_t*) (coeff->val), 0);
    L'erreur est la suivante :
    error: invalid cast from type 'ap_coeff_t::<anonymous union>' to type 'ap_scalar_t*'

    Est-ce qu'il y a un moyen de forcer le type de la structure ?

    Merci d'avance
    zaz83

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Tu utilises l'union en complet et pas le membrfe de l'union qui a le bon type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ap_mpq_set_scalar(mpq_val,  coeff->val.scalar, 0);
    devrait aller mieux
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    effectivement

    merci beaucoup !
    zaz83

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 242
    Points : 296
    Points
    296
    Par défaut
    et puis ce genre de cast:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ap_scalar_t*) (coeff->val)
    est de type C, et donc prohibé en C++!

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Et si tu en as la possibilité, regarde du côté de Boost.Variant.

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

Discussions similaires

  1. [VB6]Accès et manipulation d'une BD Access sur réseau
    Par moi_leila dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/04/2006, 18h48
  2. affectation d'une union
    Par Premium dans le forum C
    Réponses: 5
    Dernier message: 10/01/2006, 10h17
  3. manipulation d'une liste chainé
    Par sorari dans le forum C++
    Réponses: 1
    Dernier message: 16/03/2005, 12h32
  4. Réponses: 1
    Dernier message: 29/08/2004, 19h45
  5. [XSLT] Manipulation d'une String
    Par Eskarina43 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/06/2004, 11h52

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