[C] Erreur de compilation je vois pas où est le problème

Erreur de compilation je vois pas où est le problème [C] - Programmation

Marsh Posté le 05-04-2002 à 10:40:35    

Salut,
 
je veux créer ue liste chaînée et j'utilise donc la structure suivante :
 
typedef struct
{
  char name[34];
  int age;
  personne * next;
} personne;
 
seulement j'obtiens l'erreur suivante :
"parse error before personne"
pour la ligne qui est en gras et je comprends pas pourkoi ? C'est bien comme ça qu'on fait non pour les listes chaînées :??:
 
je suis sous linux et je compile avec gcc


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 05-04-2002 à 10:40:35   

Reply

Marsh Posté le 05-04-2002 à 10:50:48    

le parser ne connaît pas 'personne' quand il arrive à la définition du pointeur, donc :
 
struct personne;
{  
 char name[34];  
 int age;  
 personne * next;  
};  
 
ou struct personne; avant.

Reply

Marsh Posté le 05-04-2002 à 10:51:31    

typedef struct _Personne
{
 char name[34];
 int age;
 struct _Personne *next;
} Personne;

Reply

Marsh Posté le 05-04-2002 à 10:56:19    

youdontcare désolé ton truc n'a po marché :(
En revanche KarlKoX ça marche :)
 
Merci à vous deux :)


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 05-04-2002 à 11:47:56    

en effet, le truc de youdontcare ne marchera que ne C++. En C il faudra mettre struct personne *next;
 
( le struct n'est pas facultatif )

Reply

Marsh Posté le 05-04-2002 à 12:13:54    

C C++ je commence à me mélanger les pinceaux :pt1cable:


---------------
J'suis timide - Prêt à mourir, mais pas à vivre - Je suis vraiement très fatigué ... - more than meets the eye
Reply

Marsh Posté le 05-04-2002 à 13:15:28    

KarLKoX a écrit a écrit :

typedef struct _Personne
{
 char name[34];
 int age;
 struct _Personne *next;
} Personne;  




 
Ou la variante suivante, que je preferre en general:
 
typedef struct Personne
{
 char name[34];
 int age;
 struct Personne *next;
} Personne;  
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 05-04-2002 à 14:26:12    

archangel a écrit a écrit :

C C++ je commence à me mélanger les pinceaux :pt1cable:  




En C++, les struct sont des classes
(avec les membres publiques par defaut)
donc la notation sans le struct est valide.
 
A+
LEGREG

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed