Bonjour,

Cela fait plusieurs jours que je tente désespérément de régler un problème avec une structure en vain. Alors, je me tourne vers vous aujourd'hui. Voilà un peu le topo :

J'ai ces structures plus ou moins dépendantes entre elles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
typedef struct symb{
  char *name;
  enum {var,fonction,parametre,tableau} nature;
  enum {entier, reel, chaine } type;
  int nb_parametres;
  int borne_sup;
  int nb_dimensions;
  int imbrication;
  int bloc;
}Symb;
 
typedef struct tabSymb{
  Symb tds[20];
  int num_bloc;
  int num_imbric;
  int nb_symb;
}TabSymb;
 
typedef struct ensTabSymb{    
  TabSymb ens_tds[50];
  int nb_tables;
}EnsTabSymb;
J'ai cette fonction qui normalement a pour simple but de créer un EnsTabSymb :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
EnsTabSymb *creerEnsTDS(){
 
  EnsTabSymb *ens = (EnsTabSymb *) malloc( sizeof(EnsTabSymb));
  if(ens==0){
    printf("Erreur allocation ensemble des tables des symboles\n");
    exit(1);
  }else{
    ens->ens_tds=(TabSymb *) malloc(50*sizeof(TabSymb));
    ens->nb_tables=0;
  }
 
  return ens;
 
}
2 problèmes :

- avec le malloc j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
erreur: incompatible types in assignment
- et tout simplement lors de l'appel de ma fonction comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 EnsTabSymb* ens_tables_symboles=creerEnsTDS();
j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 erreur: un élément de l'initialisation n'est pas une constante
Voilà , si quelqu'un peut me guider un peu ce serait cool !