Problème de structure en C

Fermé
Pseudo - 21 juil. 2011 à 04:49
 le père - 23 juil. 2011 à 09:53
Bonjour, (ccm pourrait programmer un "bonsoir" en fonction de l'heure quand même :p !)

Donc voila j'ai codé une petite structure "pos" qui contient juste x et y, bref a chaque fois que j'y fais appel, j'ai un message d'erreur "main.c syntax error before "pos". Je ne sais pas pourquoi je ne vois pourtant aucune erreur (en même temps coder si tard...)

La structure :
typedef struct pos pos;
struct pos
{
int x;
int y;
};

et un exemple d'utilisation :
int
findPath (int lab[][LABY], pos posStart, pos posEnd);


Une idée pour corriger mon erreur (surement stupide d'ailleurs :\)

7 réponses

Bonjour,

A mon avis, ton erreur n'est pas sur la déclaration de la structure, même si la façon "propre" est celle donnée par lucas06150.
Je vois que ta fonction a un argument tableau à 2 dimensions, et là, ça sent le pâté !
Comment ce tableau est-il initialisé ?
Comment y accèdes tu dans ta fonction ?

Cherches de ce côté là, je pense qu'il y a une tentative d'accès illégale à la mémoire.

Cordialement
1
Bonjour

Il est totalement impossible qu'il y ait tentative d'accès illégal à la mémoire.
Pseudo a une erreur de syntaxe, autrement dit une erreur à la compilation. Puisque son programme n'est pas compilé, il ne risque pas de faire quoi que ce soit !
0
lucas06150 Messages postés 151 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 19 juillet 2012 11
21 juil. 2011 à 09:02
Salut,

Peut-être comme ça :

typedef struct {

  int x;
  int y;

} pos;

0
Non j'ai toujours les mêmes erreurs =\
0
Bonjour

La définition de pos est-elle dans la portée de l'endroit où tu définis int findPath (int lab[][LABY], pos posStart, pos posEnd); ?
0

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

Posez votre question
oui je définis la structure pos avant findpath mais c'est vrai que c'est étrange parce que je n'ai pas le bug dans le main

Vous voulez le code source complet pour chercher ?
0
ok
0
watou Messages postés 199 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 19 avril 2013 28
22 juil. 2011 à 12:15
Bonjour,
essaie ça :
struct pos 
{ 
      int x; 
      int y; 
}; 
typedef struct pos pos; 

remarque : que tu veux utiliser la structure pos tu fais :
struct  pos  posStart;
0
Bonjour,

Je ne comprends pas le sens de ta remarque.
Quand on se donne la peine de définir typedef struct pos pos; c'est justement pour pouvoir écrire simplement
pos  posStart;
au lieu de
struct pos  posStart;
0