[langage C] problème de pointeurs - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 

Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [langage C] problème de pointeurs
 
Profil : IDNaute
Plus d'informations

Bonjour,

voilà, comme vous vous en doutez, j'ai besoin d'aide!!! :-?

Je bosse actuellement sur un projet en C dont l'un des aspects est la recherche de composantes fortement connexes dans un graphe orienté. Waaa, plein de jolis mots... mais ce n'est pas l'essentiel. J'en viens au noeud du problème.

En fait, un graphe se compose de sommets et d'arcs les reliant. J'ai dont un typedef {...} sommet et un typedef {...} arc. Or, une structure de données de type sommet contient une liste de pointeurs vers ses arcs aentrants et ses arcs sortants, tandis qu'une structure de type arc contient un pointeur vers son sommet de départ et un autre vers son sommet de destination.

Les deux structures se "pointent" mutuellement, en fait.

Au niveau du code, cela donne un truc du genre :

typedef struct
{
...
arc **entrants;
arc **sortants;
...
} sommet;

typedef struct
{
...
sommet *origine;
sommet *destination;
...
} arc;

Moi, personnellement, ça me parle bien, mais malheureusement on dirait que ce n'est pas le cas pour mon compilo C qui m'envoie bouler!

Si quelqu'un (ou quelqu'une, sait-on jamais :-D ) pouvait donc éclairer ma lanterne...

merci d'avance.

Liens spon sorisés

Inscrivez-vous ou connectez-vous pour masquer ceci.

Profil : IDNaute
Plus d'informations

Le compilateur lit le source ligne par ligne.
Quand il lit la première structure, il ne connait pas la seconde. La solution est de déclarer les types avant.
Fait un truc du genre:

Code :
  1. struct _sommet;
  2. struct _arc;
  3. typedef struct _sommet
  4. {
  5. ...
  6. struct _arc **entrants;
  7. struct _arc **sortants;
  8. ...
  9. } sommet;
  10. typedef struct _arc
  11. {
  12. ...
  13. struct _sommet *origine;
  14. struct _sommet *destination;
  15. ..
  16. } arc;


En fait en mettant directement struct, je crois que tu n'es pas obligé de les déclarer avant, mais comme je ne suis pas sûr je te mets la version complète ;-)

Profil : IDNaute
Plus d'informations

OK c'est bon, ça marche... j'avais trouvé par moi-même en fait. (des fois, ça sert de relire ses cours :-P )

Merci!


Aller à :
Ajouter une réponse
  FORUM Infos-du-Net » Programmation » [langage C] problème de pointeurs
 

Liens