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);
}
A voir également:
- Pb lors de type pointeur
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
10 réponses
Et avec les majuscules inversées :
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 ?
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;
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]
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]