Probleme Pointeurs/Structures en C avec Devcp
bubqr
-
bubqr -
bubqr -
Bonjour,
Je me doute que mes questions doivent etre probablement tres stupides, mais n'ayant plus touche au C depuis longtemps, j'ai du mal avec certaines choses, notamment les pointeurs/Structures, avec des erreurs que je ne comprends pas.
Voila mon code(J'ai selectionné que ce que je jugeais utile, j'espere que ca suffira
main.c:
#include "structures.h"
game = (struct partie *)malloc(sizeof(struct partie)); Ligne 13
initialiser(game->othellier); Ligne 19
structures.h :
typedef struct partie *partie;
struct partie {
int curseur;
int trait;
int longueur;
int final;
joueur joueur[2];
struct coup coup[MAX_COUPS];
othellier othellier;
};
typedef struct othellier *othellier;
struct othellier{
int damier[MAX_INDEX];
int materiel[JOUEURS];
};
Log :
Exécution de make...
C:\Dev-Cpp\bin\make.exe -f "C:\Dev-Cpp\Othelooo\Makefile.win" all
C:\Dev-Cpp\bin\gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include"
main.c:13: warning: initialization from incompatible pointer type
main.c:13: error: initializer element is not constant
main.c:13: warning: data definition has no type or storage class
main.c: In function `main':
main.c:19: error: request for member `othellier' in something not a structure or union
C:\Dev-Cpp\bin\make.exe: *** [main.o] Error 1
Merci à ceux prets a passer du temps pour m'aider !
Je me doute que mes questions doivent etre probablement tres stupides, mais n'ayant plus touche au C depuis longtemps, j'ai du mal avec certaines choses, notamment les pointeurs/Structures, avec des erreurs que je ne comprends pas.
Voila mon code(J'ai selectionné que ce que je jugeais utile, j'espere que ca suffira
main.c:
#include "structures.h"
game = (struct partie *)malloc(sizeof(struct partie)); Ligne 13
initialiser(game->othellier); Ligne 19
structures.h :
typedef struct partie *partie;
struct partie {
int curseur;
int trait;
int longueur;
int final;
joueur joueur[2];
struct coup coup[MAX_COUPS];
othellier othellier;
};
typedef struct othellier *othellier;
struct othellier{
int damier[MAX_INDEX];
int materiel[JOUEURS];
};
Log :
Exécution de make...
C:\Dev-Cpp\bin\make.exe -f "C:\Dev-Cpp\Othelooo\Makefile.win" all
C:\Dev-Cpp\bin\gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include"
main.c:13: warning: initialization from incompatible pointer type
main.c:13: error: initializer element is not constant
main.c:13: warning: data definition has no type or storage class
main.c: In function `main':
main.c:19: error: request for member `othellier' in something not a structure or union
C:\Dev-Cpp\bin\make.exe: *** [main.o] Error 1
Merci à ceux prets a passer du temps pour m'aider !
A voir également:
- Probleme Pointeurs/Structures en C avec Devcp
- Logiciel de calcul de structure gratuit en ligne - Télécharger - Architecture & Déco
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Les structures en C ✓ - Forum C
- Amandine utilise une application pour gérer les inscriptions aux activités de son club. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « inscriptions » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Loisirs / Divertissements
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Programmation
4 réponses
Bonjour,
en effet, il semblerait que le type de game soit inconnu à la ligne 13.
Pour le type partie c'est syntaxiquement correct en C.
Le compilateur ne peut pas confondre les types: "struct partie" et "partie", ce sont deux types bien distincts.
M.
en effet, il semblerait que le type de game soit inconnu à la ligne 13.
Pour le type partie c'est syntaxiquement correct en C.
Le compilateur ne peut pas confondre les types: "struct partie" et "partie", ce sont deux types bien distincts.
M.
Up!
Desolé d'upper, mais comme je suis en plein Paques = Fais ton projet, et que cela me bloque pas mal(La je code en aveugle en attendant de trouver une solution, ce que j'ai tenté de faire pendant 2 heures), je suis vraiment en galere !
Merci a toute ame charitable.
Desolé d'upper, mais comme je suis en plein Paques = Fais ton projet, et que cela me bloque pas mal(La je code en aveugle en attendant de trouver une solution, ce que j'ai tenté de faire pendant 2 heures), je suis vraiment en galere !
Merci a toute ame charitable.
Bonjour
Pourrais-tu montrer la ligne de définition de game ?
D'autre part typedef struct partie *partie; est très étrange... reprendre le même nom pour la structure et le pointeur, pour créer la confusion, c'est l'idéal. Je ne sais pas comment le compilateur s'y retrouve. D'ailleurs, il ne s'y retrouve peut-être pas...
Pourrais-tu montrer la ligne de définition de game ?
D'autre part typedef struct partie *partie; est très étrange... reprendre le même nom pour la structure et le pointeur, pour créer la confusion, c'est l'idéal. Je ne sais pas comment le compilateur s'y retrouve. D'ailleurs, il ne s'y retrouve peut-être pas...
Bonjour, tout d'abord merci pour le temps passé sur mon cas.
Les definitions de structures nous ont été données par le prof, et j'avoue que j'ai eu du mal a me faire au fait que l'alias avait le meme nom que la structure, mais je fais quand meme confiance ;)
En ce qui concerne la definition de game, je l'avais enlevé esperant que le malloc suffirait, car quadn je met la definition, voial ce que ca donne :
struct partie *game = NULL;
game = malloc(sizeof(struct partie));
main.c:13: error: conflicting types for 'game'
main.c:12: error: previous definition of 'game' was here
main.c:13: warning: initialization makes integer from pointer without a cast
main.c:13: error: initializer element is not constant
main.c:13: warning: data definition has no type or storage class
Les definitions de structures nous ont été données par le prof, et j'avoue que j'ai eu du mal a me faire au fait que l'alias avait le meme nom que la structure, mais je fais quand meme confiance ;)
En ce qui concerne la definition de game, je l'avais enlevé esperant que le malloc suffirait, car quadn je met la definition, voial ce que ca donne :
struct partie *game = NULL;
game = malloc(sizeof(struct partie));
main.c:13: error: conflicting types for 'game'
main.c:12: error: previous definition of 'game' was here
main.c:13: warning: initialization makes integer from pointer without a cast
main.c:13: error: initializer element is not constant
main.c:13: warning: data definition has no type or storage class