Bonsoir,
je voudrais avoir une confirmation sur mon code.

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
 
typedef struct compagnie{
    char *nom;
    char acronyme[3];
}Compagnie;
 
typedef struct cellule_compagnie{
    Compagnie comp;
    struct cellule_compagnie *suivant;
}Cellule_compagnie, *Liste_compagnie;
 
int main(){
/*Allocation dynamique */
 
Liste_compagnie compagnie;
compagnie=(Cellule_compagnie*)malloc(sizeof(Cellule_compagnie));
/*Test si allocation == NULL */
(...)
Je voudrais savoir, comme ici, on a une structure dans une structure, dois-je allouer aussi la 2eme structure?
Dois-je aussi allouer le char *nom ?

Que ferez-vous pour que sa soit plus propre?

Sachant que les structures au total sont:
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
24
25
26
 
typedef struct avion{
    char identifiant[6];
    int carburant;
    int consommation;
    char heure_decollage[4];
    Compagnie *compagnie;
}Avion;
 
typedef struct cellule_avion{
    Avion avion;
    struct cellule_avion *suivant_compagnie;
    struct cellule_avion *precedent_compagnie;
    struct cellule_avion *suivant_attente;
}Cellule_avion, *Liste_avions;
 
typedef struct compagnie{
    char *nom;
    char acronyme[3];
    Liste_avions avions_compagnie;
}Compagnie;
 
typedef struct cellule_compagnie{
    Compagnie comp;
    struct cellule_compagnie *suivant;
}Cellule_compagnie, *Liste_compagnie;
Merci d'avance.