Erreur [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
29 octobre 2009
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Bonjour, mon programme refuse de fonctionné, il commet une erreur mémoire
Merci pour votre aide

#include <stdio.h>
#include <conio.h>
#include <string.h>


struct enreg{
char nom[30];
char tel[10];
}fiche;


creation(){
clrscr();
FILE *fd;
fd=fopen("fichier.dat","a+");
char c1;
printf("\nsous-programme de creation\n\n");
printf("Entrer le nom :");
scanf("%s",fiche.nom);
printf("Entrer le telephone :");
scanf("%s",fiche.tel);
do{
clrscr();
printf("Voulez-vous sauver cette fiche (o,n):");
scanf("%c",&c1);
switch(c1){
case 'o':fprintf(fd,"%s %s",fiche.nom,fiche.tel);break;
case 'n':break;
}
}while(c1!='o' && c1!='n');
fclose(fd);
}


recherche(){
FILE *fd;
fd=fopen("fichier.dat","r");
int ok=0;
char aide[30],c2;
printf("\nsous-programme de recherche\n\n");
printf("Entrez le nom recherche :");
scanf("%s",&aide);
fseek(fd,0,2);
do{
if(fd!=NULL)
{
while(!feof(fd) && ok==0)
{
if(!strcmp(fiche.nom,aide))
{
printf("%s %s",fiche.nom,fiche.tel);
ok=1;
}
printf("voulez-vous continuer la recherche ? (o/n)");
scanf("%c",&c2);
}while(c2!='n');
printf("Fin du fichier, appuyer sur une touche...");
fclose(fd);
getch();
}


main(){
char c;
do{
clrscr();
printf(" ---menu--- \n\n");
printf(" '1' : creation d'un nouvelle fiche.\n\n");
printf(" '2' : recherche d'une fiche par nom.\n\n");
printf(" '3' : quitter le programme.\n\n");
printf(" Tapez votre choix?:");
scanf("%c",&c);
switch(c){
case '1':creation();break;
case '2':recherche();break;
}
}while(c!='3');printf("\nfin de programme");
}

3 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
quand on utilise scanf( )
le deuxieme paramètre est une adresse...
donc &fiche.tel


void Aurevoir( void ); //Bonne journée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Sauf que fiche.tel c'est un tableau, donc fiche.tel ou &fiche.tel c'est pareil
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ouaip fiche.tel c'est l'adresse du premier élément du tableau ???
Yeah j'ai bien retenu ce bouquin lol :)

Mais pourquoi y ma mit réponse acceptée dans ce cas ??? étrange étrange...


void Aurevoir( void ); //Bonne journée