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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager