Warning - Appel de struct "imbriqué" [Résolu/Fermé]

Signaler
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
-
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
-
Bonjour,
Lorsque je compile mon programme, j'ai des warning du type "passing argument of myfunction from incompatible type" dans un des fichiers.c (graph.c a l'appel du "constructeur" c'est expliqué plus bas) de mes structures et dans une autre structure, j'ai un "mystruct declared in param list" (tab_arete.h)

Pour situer un peu le sujet, j'ai une structure graph et une tab_arete : la premiere ce charge de liste d'adjasence etc , la second regroupe le tableau d'arete de la 1er. Le tableau s'initialise grace au graph t est utilisé pour l'algo de kruskal, prrim ...

J'ai donc une fct dont le prototype est creerTab-arete(graph* g)
Sachant que j'ai.bien include graph.h et il me dit que le typegraph n'existe pqs ...
De meme lorsque j'utilise crrertab_arete, il me dit "expected struct sgraph*, but argument is type struct sgraph*"
Pourtant, ca compile, ca marche, mais j'aime pas les warning ! Alors si quelqun pouvais m'eclaré ...

Merci d'avance

Ps: envoyé depuis mon tel, desolenpournles fautes.

3 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 756
Avec le code c'est plus chouette
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
80
Désolé pour le temps que j'ai pris, voilà un exemple qui crée le bug :

#ifndef __A__
#define __A__

#include "b.h"

typedef struct sA{
int a;
struct sB* b;
}A;


A* creerA(int);

#endif

#ifndef __B__
#define __B__

#include "a.h"

typedef struct sB{
int b;
}B;

B* creerB(struct sA*);



#endif

Quelqu'un a une idée pour eviter ce warning ? Merci d'avance.
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
80
Il suffit de remplacer les includes dans des .h par des typedef.