Voir la version complète : C problème de structures
Bon voila un petit problème que je n'avais encore jamais rencontré :
typedef struct s_principale{
short var1;
int var2;
t_secondaire liste [6];
} t_principale;
typedef struct s_secondaire{
short var3;
int var4;
t_principale* adr_base;
t_secondaire* adr_lien;
} t_secondaire;
Comme vous voyez les 2 structures se font respectivement référence.
Y'a-t-il un moyen de réaliser cela ?
très simplement, en déclarant uniquement le prototype de ta 2e structure avant la 1e.
;)
sephiroth ff7
27/06/2007, 23h24
Si elles se font référence, alors t_principale contient des t_segondaire qui contiennent une t_principale et une t_segondaire qui contiennent ds t_principales et segondaires ... a l'infini. Je ne vois pas comment c'est possible.
Si elles se font référence, alors t_principale contient des t_segondaire qui contiennent une t_principale et une t_segondaire qui contiennent ds t_principales et segondaires ... a l'infini. Je ne vois pas comment c'est possible.
Ce sont des pointeurs, pas des données...
Par contre le prototypage de structures j'ai jamais fait...
un truc qui me choque, tu mélanges tes s_ et tes t_ un peu trop dangereusement :p
bref ton code est pas bon
+1 sur la remarque de Noda
un truc qui me choque, tu mélanges tes s_ et tes t_ un peu trop dangereusement :p
bref ton code est pas bon
Ca je pense que ça ne tiens qu'a une habitude personnelle, on a tous nos petites habitudes de notation, je cherchais juste a clarifier le probleme
Mais ça ne répond pas a ma question : comment est-ce que je protoype ma structure secondaire ?
typedef struct s_secondaire t_secondaire;
typedef struct s_principale
{
short var1;
int var2;
t_secondaire * liste[6];
} t_principale;
struct s_secondaire
{
short var3;
int var4;
t_principale * adr_base;
t_secondaire * adr_lien;
};
Par contre il faut que t_principale.liste soit un tableau de pointeurs vers t_secondaire, on ne peut pas avec un tableau de t_secondaire ...
typedef struct s_secondaire t_secondaire;
typedef struct s_principale
{
short var1;
int var2;
t_secondaire * liste[6];
} t_principale;
struct s_secondaire
{
short var3;
int var4;
t_principale * adr_base;
t_secondaire * adr_lien;
};
Par contre il faut que t_principale.liste soit un tableau de pointeurs vers t_secondaire, on ne peut pas avec un tableau de t_secondaire ...
merci ;)
Vous saurez pourquoi j'avais besoin de faire ça bientot ;)
vBulletin® v.3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org