Structures auto-référentes
Problème en cas d'auto-références dans les structures:
La structure personne n'est pas accepté par le compilateur C car elle se fait référence à elle même  pour pere et mere.

struct personne
             {
                char nom [20];
                char prenom [20];
                char sexe;
                struct date dateNaiss;
                struct personne pere;
                struct personne mere;
             };            

Le problème est que le compilateur aura un souci  pour déterminer la place prise par une variable de type personne: 20 octets pour le nom, 20 octets pour le prenom, 1 octet pour le sexe, 14 pour la date mais combien pour mere et pour pere  qui eux même ont un champ pere et mere qui eux même...?


La solution consiste à utiliser des pointeurs qui eux prennent 4 octets:
struct personne
             {
                char nom [20];
                char prenom [20];
                char sexe;
                struct date dateNaiss;
                struct personne* pere;
                struct personne* mere;
             };          


Il n'y a pas d'erreur à la compilation, une variable de type personne prend exactement 20+20+1+14+4+4 octets.

suivant                plan