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