Bonjour à tous, je veux créer un répertoir en C de la manière suivante :
Puis je veux créer une fonction inser de prototype :Code:
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Personne Personne; struct Personne{ char* nom; char* tel; Personne * suiv; } repertoire; /* le répertoire étant global */
int inser(char* nom, char* tel); qui insère une nouvelle personne au répertoir
Mon problème est que si mon répertoire ne contient encore aucune personne au sens où repertoir.nom, repertoier.tel et repertoire.suiv n'ont pas été modifiés, je ne vois pas comment insérer la première personne grâce à cette fonction inser.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 int inser(char* nom, char* tel){ Personne * p; for(p=&repertoire;p->suiv!=NULL;p=p->suiv){ if(!strcmp(nom,p->nom)) return 0; //déjà existant dans le répertoire donc pas d'insertion } p->suiv=(Personne*)malloc(sizeof(Personne)); p->suiv->nom=nom; p->suiv->tel=tel; p->suiv->suiv=NULL; return 1; }
Suis-je obliger d'ajouter la première personne dans le main, en faisait :
Puis seulement à partir du deuxième ajout, utiliser la fonction inser ?Code:
1
2
3
4
5
6
7
8 void main(void){ char nom[]="Ben"; char tel[]="0140404040"; repertoire.nom=nom; repertoire.tel=tel; repertoire.suiv=NULL; }
Merci de me répondre et désolé si erreur il y a.