Pb lors de type pointeur
dédé
-
defranoux -
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);
}
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);
}
Configuration: Linux Debian Mozilla 1.8.0.13
10 réponses
-
-
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 ?
-
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; -
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
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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] -
-
-
-
C'est qu'il y a peut etre d'autres erreurs ailleurs dans un bout de code qu'il n'as pas donné ?
-
Peut-être... Dédé tu pourrais envoyer tout ton code ou y-a-t'il des parties confidentielles ?