Tom's Guide > Forum > Programmation > [langage C] problème de pointeurs

[langage C] problème de pointeurs

Forum Programmation : [langage C] problème de pointeurs

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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 ;-)

Répondre à CRicky

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!

Répondre à magicpm7
Tom's Guide > Forum > Programmation > [langage C] problème de pointeurs
Aller à :

Il y a 2757 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens