Une structure dans une autre
Résolu/Fermé
lemutan_1525
Messages postés
3
Date d'inscription
mercredi 6 février 2019
Statut
Membre
Dernière intervention
7 février 2019
-
7 févr. 2019 à 09:03
lemutan_1525 Messages postés 3 Date d'inscription mercredi 6 février 2019 Statut Membre Dernière intervention 7 février 2019 - 7 févr. 2019 à 12:43
lemutan_1525 Messages postés 3 Date d'inscription mercredi 6 février 2019 Statut Membre Dernière intervention 7 février 2019 - 7 févr. 2019 à 12:43
A voir également:
- L'importateur de fichiers a détecté une incohérence dans la structure de fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Fichier iso - Guide
3 réponses
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
171
7 févr. 2019 à 11:49
7 févr. 2019 à 11:49
Tu peux partir sur une liste chaînée. Ce qui donne dans ton cas :
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)
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)
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 7 févr. 2019 à 12:10
Modifié le 7 févr. 2019 à 12:10
Salut lemutan_1525 ,
- tu as mal orthographié
- 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'
- quand tu postes du code, clique sur le bouton à gauche du bouton pour l'insertion d'images (qui ressemble à :
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
Sur le fond de ta question...
Lorsque tu as défini une
Par exemple :
crée un type
Par exemple :
Comme ce type est disponible une fois définit, tu peux l'utiliser pour définir d'autres
C'est ainsi que tu peux définir une
Utiliser un
Dal
- 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'
enumou 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
structmais un alias sur cette
structavec
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
structqui contient une autre
struct.
Utiliser un
typedefpermet de créer un alias sur le type
structcréé.
Dal
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
171
7 févr. 2019 à 12:33
7 févr. 2019 à 12:33
Merci pour les conventions de nommage en C. J'en fais pas beaucoup mais j'apprend un peu
lemutan_1525
Messages postés
3
Date d'inscription
mercredi 6 février 2019
Statut
Membre
Dernière intervention
7 février 2019
7 févr. 2019 à 12:43
7 févr. 2019 à 12:43
vraiment merci j tacherai de faire attention la prochaine foi...