Bonjour,

Je dois utiliser une librairie en C qui construit et travaille sur des automates (appelés ndd dans la librairie). La structure ndd est définie comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct {
  uint4      dim;
  automaton *automaton;
  uint1      base, properties;
} ndd;
où uint4, uint1 et automaton sont des structures également. Celle qui m'interesse ici est automaton, définie comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
typedef struct {
  (...)
  uint4    nb_states;            /*  Number of states.    */
 (...)
 
} automaton;
Par exemple, la méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ndd *ndd_create_inequation_msdf(r, n, c, b)
de la librairie retourne un pointeur vers un ndd.

J'aimerais de mon côté créer un ndd à partir de la méthode ndd_create_inequation_msdf() et récupérer des informations de ce ndd (par exemple, l'attribut nb_states de l'automaton du ndd). Je rencontre à ce moment une erreur de déréférencement d'un pointeur incomplet, quelle que soit la manière dont je procède, par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
struct ndd *nd;
nd = (struct ndd*) ndd_create_inequation_msdf(r, n, c, b);
nd->automaton;
Le simple fait d'accéder à automaton me renvoie l'erreur. Je suppose que si j'arrive à comprendre comment y accéder, je saurai ensuite de la même façon accéder à nb_states de automaton. Quelqu'un peut-il m'aider?

D'avance merci