C : listes chainées
Résolu
didy_gwatinik
Messages postés
352
Date d'inscription
Statut
Membre
Dernière intervention
-
oupsman Messages postés 316 Date d'inscription Statut Membre Dernière intervention -
oupsman Messages postés 316 Date d'inscription Statut Membre Dernière intervention -
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;}