Pointeurs sur une structure dans une autre
MademoiselleT
Messages postés
14
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Salut,
J'ai essayer d'écrire des structures dans une structure. Mais, en utilisant un pointeur sur un éléments d'une des structures imbriquées, mon programme a buggé puis "cessé de fonctionner".
Je voudrais savoir si le fait d'imbriquer des structures dans ma structure est faisable. Si oui, comment utiliser les attributs de l'entité de type de ma structure ?
J'ai essayer d'écrire des structures dans une structure. Mais, en utilisant un pointeur sur un éléments d'une des structures imbriquées, mon programme a buggé puis "cessé de fonctionner".
Je voudrais savoir si le fait d'imbriquer des structures dans ma structure est faisable. Si oui, comment utiliser les attributs de l'entité de type de ma structure ?
2 réponses
-
Bonjour,
Oui c'est faisable.
Montre-nous ton code plutôt, ça sera plus simple pour t'aider.
Note : pour poster ton code, merci d'utiliser la balise <code c>.
Par exemple :
<code c>ici tu mets ton code</code>
-
struct personne { char noms[20]; struct voies { nomregion regcon[16]; struct voi { int nbvreg; }; }; }; typedef struct personne personne; typedef struct voies voies; typedef struct voi voipreg; main() { personne cndt[5]={"","",0}; personne *pointeur0=NULL; voies *pointeur1=NULL; voipreg *pointeur2=NULL; int i; printf("\t\tNOMS DES CANDIDATS\n\t\t__________________\n\n"); for(i=0; i<5; i++) { printf("Candidat numero %d:\t",i+1); scanf("%s",cndt[i].noms); } nom(pointeur1->regcon); printf("\n\t\tNOMBRE DE VOIES PAR CANDIDAT\n\t\t_________(etc etc)
nom -->> procédure qui copie des chaines de caracteres dans un tableau de chaines de caracteres
c'est à partir de l'avant derniere ligne que sa déconne
-
-
Bonjour,
Tu as oublié de mettre la fin de la balise </code>.
Du coup, ça manque de visiblité.
Dans tes structures, tous les éléments doivent être déclarés.
Pourtant, tu définies des structures imbriquées, sans déclarer de variables.
Exemple :struct Personne { struct Nom { char nom[15]; } sNom; /*tu crées une variable nom de type struct Nom. Sans ça, ça ne fonctionnera pas*/ };
Note : par ailleurs, ta structure Nom a une portée restreinte à ta structure Personne. Cela ne sert donc à rien de la nommer. Tu peux mettre simplement :struct { /*pas besoin de nommer la structure*/ char nom[15]; } sNom;
Je te laisse corriger ton code en fonction de mes remarques. N'hésite pas à reposter ton code si cela ne fonctionne toujours pas.
Google is your friend-
-
-
-
struct personne { char noms[20]; struct { nomregion regcon[16]; struct { int nbvreg; } svoi; } svoies; }; typedef struct personne personne; main() { personne cndt[5]={"","",0}; struct svoies *pointeur1=NULL; int i; printf("\t\tNOMS DES CANDIDATS\n\t\t__________________\n\n"); for(i=0; i<5; i++) { printf("Candidat numero %d:\t",i+1); scanf("%s",cndt[i].noms); } nom(pointeur1->regcon); -
-