Je ne comprend pas mon erreur à propos de ma structure
Utilisateur anonyme
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, s'il vous plaît je ne comprend pas mon erreur à propos de ma structure l'erreur est dans le main merci d'avance pour toutes aides !
Le code d'erreur de mon ide : error: incompatible types when assigning to type 'Coordonnees *' {aka 'struct _Coordonnees *'} from type 'struct _Coordonnees'
Mes structures dans le .h :
Mon main dans le .c :
Le code d'erreur de mon ide : error: incompatible types when assigning to type 'Coordonnees *' {aka 'struct _Coordonnees *'} from type 'struct _Coordonnees'
Mes structures dans le .h :
typedef struct _Coordonnees Coordonnees; #ifndef COORDONNEES_ #define COORDONNEES_ struct _Coordonnees { double x; double y; }; #endif typedef struct _Polygon Polygon; #ifndef POLYGON_ #define POLYGON_ struct _Polygon { unsigned int count; Coordonnees* Coordonnees; }; #endif
Mon main dans le .c :
int main(int argc, char *argv[]) { struct _Coordonnees Coordonnees; Coordonnees.x = 20; Coordonnees.y = 7; struct _Polygon Polygon; Polygon.count = 0; Polygon.Coordonnees = Coordonnees; /*L'erreur est ici*/ return 0; }
Configuration: Windows / Chrome 78.0.3904.97
A voir également:
- Je ne comprend pas mon erreur à propos de ma structure
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
3 réponses
Bonsoir
2 rappels,
2 rappels,
- il y a forum C, c'est mieux pour y poster les questions qui concernent ce langage
- la bonne utilisation de la coloration syntaxique est décrite là https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tomsuper
Messages postés
1926
Date d'inscription
Statut
Membre
Dernière intervention
360
Merci
Bonjour,
As tu inclus ton .h dans ton fichier .c ?
Pourquoi à la 1ere ligne de ton main, tu declares struct _Coordonnees ?
Je te conseil cette ligne la plutôt
Coordonnees Nom_de_variable;
Cordialement.
As tu inclus ton .h dans ton fichier .c ?
Pourquoi à la 1ere ligne de ton main, tu declares struct _Coordonnees ?
Je te conseil cette ligne la plutôt
Coordonnees Nom_de_variable;
Cordialement.
Typedef : raccourci de définition de type.
Tu définie le type Coordonnées comme une struct _Coordonnees
Donc ta ligne as une fautes et un non sens.
Le non sens étant de pourquoi definire Coordonnees comme type pour ne pas s'en servire ?
L'erreur étant que tu ne peux donné un type comme nom as une variable. comme int char. char étant un type, il ne peut être le nom de la variable int.
Cordialement
Tu définie le type Coordonnées comme une struct _Coordonnees
Donc ta ligne as une fautes et un non sens.
Le non sens étant de pourquoi definire Coordonnees comme type pour ne pas s'en servire ?
L'erreur étant que tu ne peux donné un type comme nom as une variable. comme int char. char étant un type, il ne peut être le nom de la variable int.
Cordialement
int main(int argc, char *argv[]) { Coordonnees emplacement; emplacement.x = 20; emplacement.y = 7; Polygon Poly; Poly.count = 0; if ((Poly.emplacement = malloc(sizeof(Coordonnes))) == NULL) return (1); Poly.emplacement = Coordonnees; /*L'erreur est ici*/ return 0; /*pense à free ton Poly.emplacement*/ }
Peux tu tester cela ?
Salut Modaak,
Ton erreur que tu mentionnes dans ton message initial est due au fait que tu as définit le membre Coordonnees de la struct Polygon comme étant un pointeur sur le type Coordonnees.
Or dans la ligne de code ci-dessus, tu essayes d'y affecter le contenu de la struct à droite du signe = et non pas le pointeur sur cette struct.
Donc il suffisait, à mon sens, de faire :
(non testé)
Dal
Polygon.Coordonnees = Coordonnees; /*L'erreur est ici*/
Ton erreur que tu mentionnes dans ton message initial est due au fait que tu as définit le membre Coordonnees de la struct Polygon comme étant un pointeur sur le type Coordonnees.
Or dans la ligne de code ci-dessus, tu essayes d'y affecter le contenu de la struct à droite du signe = et non pas le pointeur sur cette struct.
Donc il suffisait, à mon sens, de faire :
Polygon.Coordonnees = &Coordonnees; /* plus d'erreur */
(non testé)
Dal