Petit problème sur pointeurs de structures
Bonjour à tous, je veux créer un répertoir en C de la manière suivante :
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 */ |
Puis je veux créer une fonction inser de prototype :
int inser(char* nom, char* tel); qui insère une nouvelle personne au répertoir
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;
} |
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.
Suis-je obliger d'ajouter la première personne dans le main, en faisait :
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;
} |
Puis seulement à partir du deuxième ajout, utiliser la fonction inser ?
Merci de me répondre et désolé si erreur il y a.