Pb lors de type pointeur

dédé -  
 defranoux -
salut,
le probleme c'est qd compile ca m affiche attention assignement de type pointeur incompatible jvois pas ce que je pourrais mettre.
Si qqn pourrais m aider ???( j'ai mis en gras la ou ya le pb )

voila mes structure :

typedef struct compagnie{
char* nom;
char acronyme[3];
Liste_avions avions_compagnie;
}Compagnie;

typedef struct avion{
char identifiant[6];
int carburant;
int consommation;
char heure_decollage[4];
struct Compagnie *compagnie;
}Avion;

voila mes fonction :
Avion *Creer_Avion(char idf[6] , int conso, int car, char heure[4],Compagnie *cp)
{
Avion *av;

av=Alloue_Avion();
strcpy((*av).identifiant,idf);
(*av).carburant=car;
(*av).consommation=conso;
strcpy((*av).heure_decollage,heure);
av->compagnie=cp; /****Modification (*av).compagnie=cp; ****/
return (av);
}

Cellule_avion* Creer_Cellule_Avion(Avion av,Cellule_avion *suiv,Cellule_avion *prec, Cellule_avion *suiv_at)
{
Cellule_avion* cel_av;
cel_av=Alloue_Cellule_Avion();
cel_av->avion=av;
(cel_av).Suivant_compagnie=suiv;
(*cel_av).Precedent_compagnie=prec;
(cel_av)->Suivant_attente=suiv_at;


return (cel_av);

}
A voir également:

10 réponses

defranoux
 
Il manque la définition de la structure Cellule_avion dans ton code !
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Et avec les majuscules inversées :
typedef struct Compagnie{
char* nom;
char acronyme[3];
Liste_avions avions_compagnie;
}compagnie;

typedef struct Avion{
char identifiant[6];
int carburant;
int consommation;
char heure_decollage[4];
struct Compagnie *compagnie;
}avion;



ca donne quoi ? (ca fait un bail que j'ai pas fais de C mais il me semble que si tu veux faire appel à une structure (struct Compagnie *compagnie;), il faut que la syntaxe soit respectée.

Une remarque : Liste_avions, c'est quoi ce type là ? Tu n'as pas mis tout le code ou tu as oublié de déclarer ce type de structure ?
0
dédé
 
la voila

typedef struct cellule_avion{
Avion avion;
struct Cellule_avion* Suivant_compagnie;
struct Cellule_avion* Precedent_compagnie;
struct Cellule_avion* Suivant_attente;
}Cellule_avion;

typedef Cellule_avion* Liste_avions;
0
dédé
 
si j inverse ca affiche plus de pb les structures c'est le prof qui nous les a donné deja faite normalement a ce niv ya pas de pb jpense
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
defranoux
 
Tes structures pointent vers d'autres structures, qui elle même pointent vers les premières...

Il faut donc définir les types dans un premier temps, puis expliciter les structures :

#include <string.h>

typedef struct compagnie Compagnie;
typedef struct avion Avion;
typedef struct cellule_avion Cellule_avion;
typedef Cellule_avion* Liste_avions;

struct compagnie
{
char* nom;
char acronyme[3];
Liste_avions avions_compagnie;
};

struct avion
{
char identifiant[6];
int carburant;
int consommation;
char heure_decollage[4];
Compagnie *compagnie;
};

struct cellule_avion
{
Avion avion;
Cellule_avion* Suivant_compagnie;
Cellule_avion* Precedent_compagnie;
Cellule_avion* Suivant_attente;
};

Avion *Alloue_Avion();
Cellule_avion *Alloue_Cellule_Avion();

Avion *Creer_Avion(char idf[6] , int conso, int car, char heure[4],Compagnie *cp)
{
Avion *av;

av=Alloue_Avion();
strcpy((*av).identifiant,idf);
(*av).carburant=car;
(*av).consommation=conso;
strcpy((*av).heure_decollage,heure);
av->compagnie=cp; /****Modification (*av).compagnie=cp; ****/
return av;
}

Cellule_avion* Creer_Cellule_Avion(Avion av,Cellule_avion *suiv,Cellule_avion *prec, Cellule_avion *suiv_at)
{
Cellule_avion* cel_av;
cel_av=Alloue_Cellule_Avion();
cel_av->avion=av;
cel_av->Suivant_compagnie=suiv;
cel_av->Precedent_compagnie=prec;
cel_av->Suivant_attente=suiv_at;

return cel_av;
}

[ce code compile avec gcc 4.1.2/debian etch mais bien entendu il manque des choses à l'édition de liens]
0
defranoux
 
Au passage, remplace les (*av). par des av-> c'est plus lisible...
0
dédé
 
j'ai fait ce que tu as dit mais ca ne change rien ...
0
defranoux
 
Ce que j'ai dit ? Tu as pris le code que j'ai mis ? Chez moi il compile bien !
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
C'est qu'il y a peut etre d'autres erreurs ailleurs dans un bout de code qu'il n'as pas donné ?
0
defranoux
 
Peut-être... Dédé tu pourrais envoyer tout ton code ou y-a-t'il des parties confidentielles ?
0