Structure dans fonction
Fermé
romain78
-
30 oct. 2012 à 12:01
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 30 oct. 2012 à 15:26
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 30 oct. 2012 à 15:26
A voir également:
- Structure dans fonction
- Fonction si et - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Structure d'un rapport de stage - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
30 oct. 2012 à 13:29
30 oct. 2012 à 13:29
Bonjour,
Pour info, tu pourrais également utiliser un arbre plutôt qu'une structure.
Et pour conseil, mets une majuscule à tes noms de structure (cela évite confusion entre type et variable).
Sinon avec le tableau, voici un exemple de ce que tu pourrais faire :
Je n'ai pas testé le code, donc attention, il y a peut-être des erreurs. Mais le principe reste là.
Pour info, tu pourrais également utiliser un arbre plutôt qu'une structure.
Et pour conseil, mets une majuscule à tes noms de structure (cela évite confusion entre type et variable).
Sinon avec le tableau, voici un exemple de ce que tu pourrais faire :
static void videBuffer(void) { int c; while( (c=getchar()) != '\n' && c!=EOF ); } void ajouter(Utilisateur *carnet, int *nbUser) { printf("..."); if (fgets(carnet[*nbUser].nom, sizeof *carnet.nom, stdin)) { char *p=strchr(carnet[*nbUser].nom,'\n'); if(p!=NULL) *p='\0'; else videBuffer(); ... (*nbUser)++; } int main(void) { Utilisateur carnet[10]; int nbUser=0; /*boucle*/ /*menu*/ ajouter(carnet,&nbUser); /*fin boucle*/ return 0; }
Je n'ai pas testé le code, donc attention, il y a peut-être des erreurs. Mais le principe reste là.
gibs1
Messages postés
1
Date d'inscription
mardi 30 octobre 2012
Statut
Membre
Dernière intervention
30 octobre 2012
Modifié par gibs1 le 30/10/2012 à 14:15
Modifié par gibs1 le 30/10/2012 à 14:15
(Je me suis inscrit donc normal si je n'ai pas le même pseudo)
OK donc si je ne me trompe pas tu as utilisé de la dynamique non ?
Je n'ai pas encore eu le temps de me pencher dessus donc j'aimerai savoir si c'est obligatoire
Ensuite, j'aimerai en savoir un peu plus sur l'arbre, pourrais tu me définir le concept en quelques mots pour que je puisse faire plus de recherche
OK donc si je ne me trompe pas tu as utilisé de la dynamique non ?
Je n'ai pas encore eu le temps de me pencher dessus donc j'aimerai savoir si c'est obligatoire
Ensuite, j'aimerai en savoir un peu plus sur l'arbre, pourrais tu me définir le concept en quelques mots pour que je puisse faire plus de recherche
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
30 oct. 2012 à 14:42
30 oct. 2012 à 14:42
Où vois-tu de la dynamique ? Et qu'entends-tu par "dynamique" ?
Ne confondrais-tu pas avec allocation dynamique ? Si c'est le cas, à aucun endroit j'en ai utilisé. J'ai tout simplement repris ta structure où l'allocation des variables est statiques.
Pour l'arbre, je pensais à l'utilisation d'une liste doublement chaînée : https://forums.commentcamarche.net/forum/affich-37604399-liste-doublement-chainee
Cdlt,
Ne confondrais-tu pas avec allocation dynamique ? Si c'est le cas, à aucun endroit j'en ai utilisé. J'ai tout simplement repris ta structure où l'allocation des variables est statiques.
Pour l'arbre, je pensais à l'utilisation d'une liste doublement chaînée : https://forums.commentcamarche.net/forum/affich-37604399-liste-doublement-chainee
Cdlt,
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 30/10/2012 à 15:29
Modifié par [Dal] le 30/10/2012 à 15:29
Salut gibs1,
fiddy t'a donné tous les éléments dans son code d'exemple, analyse le bien.
Je voulais juste attirer ton attention sur ton typedef et la façon dont tu le déclares et tu l'utilises.
est incorrect :
- il manque l'identifiant du type créé et un ; à la fin du typedef
- la déclaration de carnet utilise l'étiquette du struct, ce qui ne va rien donner (sauf à déclarer struct utilisateur carnet[10];, mais alors, cela ne sert à rien de créer un typedef).
Donc, pour créer un typedef de struct, il faut normalement une étiquette identifiant le struct, et un nom pour le type créé :
Ce sont deux choses différentes, même si on peut utiliser le même identifiant pour éviter de se casser la tête :
On peut aussi se passer de l'étiquette de struct :
Dal
fiddy t'a donné tous les éléments dans son code d'exemple, analyse le bien.
Je voulais juste attirer ton attention sur ton typedef et la façon dont tu le déclares et tu l'utilises.
typedef struct utilisateur { char nom[30]; char prenom[30]; int age; } utilisateur carnet[10];
est incorrect :
- il manque l'identifiant du type créé et un ; à la fin du typedef
- la déclaration de carnet utilise l'étiquette du struct, ce qui ne va rien donner (sauf à déclarer struct utilisateur carnet[10];, mais alors, cela ne sert à rien de créer un typedef).
Donc, pour créer un typedef de struct, il faut normalement une étiquette identifiant le struct, et un nom pour le type créé :
typedef struct StructUtilisateur { char nom[30]; char prenom[30]; int age; } TypeUtilisateur; TypeUtilisateur carnet[10];
Ce sont deux choses différentes, même si on peut utiliser le même identifiant pour éviter de se casser la tête :
typedef struct Utilisateur { char nom[30]; char prenom[30]; int age; } Utilisateur; Utilisateur carnet[10];
On peut aussi se passer de l'étiquette de struct :
typedef struct { char nom[30]; char prenom[30]; int age; } Utilisateur; Utilisateur carnet[10];
Dal