[C] definition d'une liste chainee

definition d'une liste chainee [C] - C - Programmation

Marsh Posté le 10-08-2004 à 12:03:17    

Bonjour a tous,
 
voila 1er message et 1er probleme...
Jusqu'a present, quand j'avais une liste chainée a faire, je faisais une classe C++ et tout marchait bien...
mais voila, la il faut que j'en fasse une en C et j'y arrives pas...
 
des que je mets

Code :
  1. struct SLelement
  2. {
  3. int iSLtype;
  4. char *sVarName;
  5. void *pvVal;
  6. SLelement *NextElm;
  7. SLelement *PrevElm;
  8. };


 
J'ai mon compilo qui gueule et qui me dit que SLelement est indéfini, pour les declarations de NextElm et PrevElm...
 
Je precise que je suis sous linux et que j'ai essayé de compiler avec icc et aussi gcc mais meme resultat... :(
 
Voila si quelqu'un a une idée...merci

Reply

Marsh Posté le 10-08-2004 à 12:03:17   

Reply

Marsh Posté le 10-08-2004 à 12:09:23    

Code :
  1. [...]
  2. struct SLelement *NextElm;
  3. struct SLelement *PrevElm;
  4. [...]


Message édité par Harkonnen le 10-08-2004 à 12:11:23
Reply

Marsh Posté le 10-08-2004 à 12:21:51    

pas de typedef implicite en c
 
 

Code :
  1. typedef struct _SLelement /* tag pour l'identifier */
  2. {
  3.      int iSLtype;
  4.      char *sVarName;
  5.      void *pvVal;
  6.      struct _SLelement *NextElm;
  7.      struct _SLelement *PrevElm;
  8. } SLelement;


Reply

Marsh Posté le 10-08-2004 à 12:34:27    

oki merci pour vos reponses, maintenant ca marche :)
 
Autre petite question, c'est possible, toujours en C, de definir une fonction a l'interieur d'une structure ou alors ca c que pour le C++?


Message édité par GuiYom_00 le 10-08-2004 à 12:36:24
Reply

Marsh Posté le 10-08-2004 à 12:41:29    

non tu peux pas
en c++ les struct sont des classes, a ne pas confondre avec les structures du c

Reply

Marsh Posté le 10-08-2004 à 12:45:58    

ok merci donc dans ce cas je vais faire sans...

Reply

Marsh Posté le 10-08-2004 à 12:47:34    

par contre un membre de ta struct peut etre un pointeur sur  une fonction si ca t'interesse

Reply

Sujets relatifs:

Leave a Replay

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