Déclaration et définition struct récursive
Bonjour à tous.
je ne connais rien au language C, mais je suis en train d'essayer de comprendre un code qui l'utilise.
J'ai pu lire que :
Code:
typedef struct maStructure
est une définition de maStructure
et que
Code:
struct maStructure* structure1
est une déclaration du pointeur structure1 de type maStructure définie ci-avant.
Dans le code suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11
| typedef struct quadTreeNode {
struct quadTreeNode* northWest;
struct quadTreeNode* northEast;
struct quadTreeNode* southWest;
struct quadTreeNode* southEast;
TBBoundingBox boundary;
TBQuadTreeNodeData *points;
int count;
int bucketCapacity;
} TBQuadTreeNode;
TBQuadTreeNode* TBQuadTreeNodeMake(TBBoundingBox boundary, int bucketCapacity); |
à priori la structure de quadTreeNode comprend les champs
- boundary
- *points
- count
- bucketCapacity
Qu'en est-il de northWest, northEast, southWest et southEast ? Ces champs appartiennent-ils à la structure ?
Il semble que ce soit un code récursif.
Si oui, n'est-on pas dans une boucle infinie où chaque instance de quadTreeNode crée un quadTreeNode de niveau inférieur qui lui même en crée un supplémentaire et ainsi de suite ?
Merci pour votre éclairage.