Bonjour à tous, je veux créer un répertoir en C de la manière suivante :

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 */
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 : 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;
}
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 : 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;
}
Puis seulement à partir du deuxième ajout, utiliser la fonction inser ?



Merci de me répondre et désolé si erreur il y a.