PDA

Voir la version complète : C problème de structures


DJP
27/06/2007, 22h33
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 ?

Noda
27/06/2007, 23h12
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.

DJP
27/06/2007, 23h31
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...

YoBoY
27/06/2007, 23h32
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

DJP
27/06/2007, 23h56
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 ?

Pitt
28/06/2007, 00h14
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 ...

DJP
28/06/2007, 01h16
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 ;)