Menu

Une structure dans une autre [Résolu]

Messages postés
3
Date d'inscription
mercredi 6 février 2019
Dernière intervention
7 février 2019
- - Dernière réponse : lemutan_1525
Messages postés
3
Date d'inscription
mercredi 6 février 2019
Dernière intervention
7 février 2019
- 7 févr. 2019 à 12:43
Bonjour,


mon probleme est sur le fait que j'ai cree une structure que voici

typdef struct ETUDIANT
{
char matricule [256];
char nom [256];
int age;
}ETUDIANT;


mais la je veut cree une autre structure sous le nom de liste_etudiant qui vas prendre en parametre les etudiants et le nombre d'etudiant de la liste ... et je connais pas comment m'y prendre votre aide serait la bien venu et merci d'avance
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
755
Date d'inscription
mercredi 20 juin 2018
Dernière intervention
15 février 2019
52
1
Merci
Tu peux partir sur une liste chaînée. Ce qui donne dans ton cas :

typedef LISTE_ETUDIANT
{
struct ETUDIANT etudiant;
struct ETUDIANT * etudiantSuivant;
int position;
} LISTE_ETUDIANT;


Un peu de lecture sur les listes chaînées :
https://www.commentcamarche.net/contents/114-langage-c-les-listes-chainees

Une structure LISTE_ETUDIANT contient un ETUDIANT et le pointeur vers l'ETUDIANT suivant. La variable position vaut la position de l'ETUDIANT dans la liste (le premier est 0 ou 1 comme tu le souhaite).

Si tu veux connaître la taille de ta liste, il faudra parcourir tous les éléments de ta liste jusqu'à tomber sur le dernier (pour info, le dernier élément de ta liste, n'a pas d'ETUDIANT suivant donc le pointeur est null) et regarder combien vaut la variable position (que tu dois définir ou mettre à jour à chaque fois que tu créé ou supprime un LISTE_ETUDIANT)

Il existe certainement une autre manière plus simple de calculer la taille de ta liste mais elle implique de ne pas mettre la variable position dans LISTE_ETUDIANT et de créer une autre fonction qui prend en entrée un LISTE_ETUDIANT et qui retourne en sortie la taille de la liste à partir de cet élément (l'avantage c'est que t'as pas besoin de mettre à jour constamment la variable position)

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 58158 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Jithel
Messages postés
4910
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
15 février 2019
904
1
Merci
Salut lemutan_1525 ,

- tu as mal orthographié
typedef

- tu ne devrais pas utiliser des lettres capitales, qui sont, par convention, utilisées par les programmeurs C pour définir des constantes, sous forme d'
enum
ou de
#define
...
- quand tu postes du code, clique sur le bouton à gauche du bouton pour l'insertion d'images (qui ressemble à :
< > v

clique sur la flèche basse pour choisir le langage C et met ton code à l'intérieur des balises code). Cela préservera l'indentation de ton code, fera une coloration syntaxique du code posté et numérotera les lignes de code
- tu de déclares pas juste une
struct
mais un alias sur cette
struct
avec
typedef
...

Sur le fond de ta question...

Lorsque tu as défini une
struct
, tu as créé un type en C.

Par exemple :

struct point {
   int x;
   int y;
};

crée un type
struct point
, et comme tout type en C, tu peux l'utiliser pour déclarer des variables de ce type.

Par exemple :

struct point point_A;

Comme ce type est disponible une fois définit, tu peux l'utiliser pour définir d'autres
struct
, par exemple :

struct triangle {
   struct point point_A;
   struct point point_B;
   struct point point_C;
};

C'est ainsi que tu peux définir une
struct
qui contient une autre
struct
.

Utiliser un
typedef
permet de créer un alias sur le type
struct
créé.

Dal

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 58158 internautes nous ont dit merci ce mois-ci

Jithel
Messages postés
755
Date d'inscription
mercredi 20 juin 2018
Dernière intervention
15 février 2019
52 -
Merci pour les conventions de nommage en C. J'en fais pas beaucoup mais j'apprend un peu
Commenter la réponse de [Dal]
Messages postés
3
Date d'inscription
mercredi 6 février 2019
Dernière intervention
7 février 2019
0
Merci
vraiment merci j tacherai de faire attention la prochaine foi...
Commenter la réponse de lemutan_1525