Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [C / C++ / C#] » Declaration de structure
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : Declaration de structure
Web
Vétéran
Membre # 2137

 Avatar du membre
Lieu : Genappe (Belgique)

Messages :
2113 (0.36 par jour)


Score :

Message du 21-06-2007 @ 12:14   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour à tous, j'ai une question con (peut être pas tant que ça en fait :)):

Es-t-il possible en C de déclarer des structure de ce type :

Code :


typedef struct a
{
int a;
B sB;
} A;

typedef struct b
{
int b;
A sA;
} B;



En gros, existe t-il des prototypes pour la déclaration d'un type de donnée ?

Merci !

[message édité le 21-06-2007 @ 17:05 Par Web]
----------
Macbook
- Haut de page -
AlbertRaccoon
Vétéran
Membre # 3393

 Avatar du membre
Lieu : Evian / Lausanne

Messages :
10270 (1.81 par jour)




Message du 21-06-2007 @ 15:54   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Bah essaye... :D

Sinon, tu peux toujours essayer de remplacer les structs utilisés comme deuxième argument par des pointeurs vers ces structs.

Parce que vu comme tu l'as fait, je vois pas comme le compilateur peut savoir quelle quantité de mémoire il faut allouer à chaque structure... :sic:

[message édité le 21-06-2007 @ 15:59 Par AlbertRaccoon]
----------
Intel Core 2 Quad Q6600 avec Zalman CNPS9500LED, Asus P5Q, 4 Go DDR2-667 Kingston , Xpertvision 8800GTS 320 Mo, Hercules ProphetView 920 Pro, SoundBlaster Audigy 4, Seasonic S12 500W, Se7en Pro x64, Logitech diNovo, Logitech G5, LiveBox 2, Cowon X5 avec écouteurs Phonak 012, Alienware 17 R3 (i7-6700HQ, 16 Go, Geforce GTX 980M 8 Go), HTC 8x, Pentax K-7 | Pentax SMC DA 18-55mm f/3,5-5,6 AL | Sigma APO DG 70-300mm f/4-5,6 | Ma galerie
- Haut de page -
Web
Vétéran
Membre # 2137

 Avatar du membre
Lieu : Genappe (Belgique)

Messages :
2113 (0.36 par jour)


Score :

Message du 21-06-2007 @ 17:02   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

oui oui j'ai essayer :D Ce que je voulais dire c'est comment déclarer ces 2 structures avec un code qui compile. Le pointeur n'y change rien.

[message édité le 21-06-2007 @ 17:03 Par Web]
----------
Macbook
- Haut de page -
AlbertRaccoon
Vétéran
Membre # 3393

 Avatar du membre
Lieu : Evian / Lausanne

Messages :
10270 (1.81 par jour)




Message du 21-06-2007 @ 18:48   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Regarde ce pdf, page 77 :

Citation


Pour résoudre ce problème le compilateur C tolère qu’on déclare un pointeur vers une structure non encore
définie. Plus précisément, si la structure ayant le nom indiqué n’a pas encore été déclarée, l’expression "struct
nom" est légitime. Elle identifie un type incomplet et on peut l’utiliser à tout endroit où sa taille n’est pas
requise, notamment dans la déclaration d’un pointeur vers une telle structure.



... d'où l'intérêt de passer par des pointeurs. Dans le cas contraire, il reste le problème d'allocation de mémoire pour une structure, sachant que la taille de la structure membre doit être connue. ;)

Bizarre que ça marche pas avec des pointeurs...

EDIT : à la relecture du pdf suscité, tu peux essayer quelque chose comme :

Citation


typedef struct a A;
typedef struct b B;

struct a
{
int a;
B *sB;
};

struct b
{
int b;
A *sA;
};



... mais tu ne pourras pas, je pense, te passer de pointeurs. :sic:

[message édité le 21-06-2007 @ 19:00 Par AlbertRaccoon]
----------
Intel Core 2 Quad Q6600 avec Zalman CNPS9500LED, Asus P5Q, 4 Go DDR2-667 Kingston , Xpertvision 8800GTS 320 Mo, Hercules ProphetView 920 Pro, SoundBlaster Audigy 4, Seasonic S12 500W, Se7en Pro x64, Logitech diNovo, Logitech G5, LiveBox 2, Cowon X5 avec écouteurs Phonak 012, Alienware 17 R3 (i7-6700HQ, 16 Go, Geforce GTX 980M 8 Go), HTC 8x, Pentax K-7 | Pentax SMC DA 18-55mm f/3,5-5,6 AL | Sigma APO DG 70-300mm f/4-5,6 | Ma galerie
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.04 secondes