Logo du forum
 

Forum TT-Hardware

| 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

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

Auteur
Sujet : Declaration de structure
Web



 






Message du 21-06-2007 @ 12:14


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]
- Haut de page -
AlbertRaccoon



 






Message du 21-06-2007 @ 15:54

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]
- Haut de page -
Web



 






Message du 21-06-2007 @ 17:02

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]
- Haut de page -
AlbertRaccoon



 






Message du 21-06-2007 @ 18:48

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]
- Haut de page -

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.484 secondes