C : listes chainées
Résolu
didy_gwatinik
Messages postés
358
Statut
Membre
-
oupsman Messages postés 319 Statut Membre -
oupsman Messages postés 319 Statut Membre -
Bonjour,
J'essaie de faire un carnet d'adresse en liste chainée, je n'en suis qu'à la saisie et j'ai déjà un problème :( quelqu'un pourrait-il m'aider, je ne vois pas du tout ce qui ne va pas!!!
voila mon code :
Merci!
J'essaie de faire un carnet d'adresse en liste chainée, je n'en suis qu'à la saisie et j'ai déjà un problème :( quelqu'un pourrait-il m'aider, je ne vois pas du tout ce qui ne va pas!!!
voila mon code :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
int nbContact=0;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++Declaration de la liste chainee+++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
struct contact
{
char nom[20];
char prenom[20];
char numTel[11];
char mel[50];
char motdepasse[9];
struct contact *next; //pointe sur l'adresse du suivant
}*pc,*start,*fin; //pointeur de type contact : pointeur courant, pointeur pour le début et pour la fin
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure memoireTampon (pour vider la memoire tampon apres un gets
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void memoireTampon()
{
fflush(stdin);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure creationFiche (ajouter un nouveau contact automatiquement à la fin de la liste)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void creationFiche()
{
int correct;
//Pour la création de la 1ere fiche
if(nbContact==0)
{
//On veut ajouter un élément, on réserve de la mémoire
start=(struct contact *)malloc(sizeof(struct contact));
//-> pour atteindre les variables quand on est sur un pointeur
memoireTampon();
puts("Nom : ");
gets(pc->nom);
memoireTampon();
puts("Prenom : ");
gets(pc->prenom);
memoireTampon();
puts("Numero de telephone : ");
gets(pc->numTel);
memoireTampon();
puts("Adresse mail : ");
gets(pc->mel);
strcpy(pc->motdepasse,"RIEN");
start->next=NULL; //il n'y a rien derrière donc le pointeur est NULL
fin=start;
nbContact++;
}
else{
//Pour la creation d'une Fiche quand au moins une fiche a été créée
pc=(struct contact *)malloc(sizeof(struct contact)); //on alloue de la mémoire pour ajouter de nouvelles donnees
memoireTampon();
puts("Nom : ");
gets(pc->nom);
memoireTampon();
puts("Prenom : ");
gets(pc->prenom);
memoireTampon();
puts("Numero de telephone : ");
gets(pc->numTel);
memoireTampon();
puts("Adresse mail : ");
gets(pc->mel);
strcpy(pc->motdepasse,"RIEN");
fin->next=pc; //next recoit pointe vers l'adresse de pc
pc->next=NULL;
fin=pc;
nbContact++;
}
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure Presentation
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void presentation()
{
printf("\n\n\n\n\n\n");
puts(" *****************************************************");
puts(" * *");
puts(" * CARNET D'ADRESSE *");
puts(" * *");
puts(" *****************************************************");
printf("\n\n\n\n\n\n");
system("pause");
system("cls");
}
main( )
{presentation();
creationFiche();
getch();
return 0;}
Merci!
3 réponses
là comme ça en lisant une fois je ne vois pas d'où peut venir le problème.
Dit nous où est ton problème.
où dans le code ?
compilation ? exécution ? Erreur de segmentation ? ou ça ne donne pas ce que tu attends ?
Petit conseil, suit ce qui est écris ici au sujet de gets() http://pwet.fr/man/linux/fonctions_bibliotheques/gets/ , c'est à dire ne l'utilise pas.
Dit nous où est ton problème.
où dans le code ?
compilation ? exécution ? Erreur de segmentation ? ou ça ne donne pas ce que tu attends ?
Petit conseil, suit ce qui est écris ici au sujet de gets() http://pwet.fr/man/linux/fonctions_bibliotheques/gets/ , c'est à dire ne l'utilise pas.
Salut, Char Sniper a raison, précise à quel niveau se trouve ton problème ? compilation, execution ... etc ? sinon juste en passant, je vois que dans ton main tu fais un return 0; donc il faut que tu écrives int main(){ ... return 0;}