Erreur de Segmentation C
REto_9470
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour !
Je dois effectuer un programme pour la gestion d'une banque pour un TP et malheureusement j'ai un problème de segmentation...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LETTRES 20
#define MAX_SOLDE 999999999
#define MAX_NBR_CLIENT 30
struct client{
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
char solde[MAX_SOLDE];
};
struct client T[MAX_NBR_CLIENT];
int ajoutclient(){
int i;
for(i=0 ; i<MAX_NBR_CLIENT; i++){
printf("Nom du client :\n");
scanf("%s",T[i].nom);
fflush(stdin);
printf("Prénom du client :\n");
scanf("%s",T[i].prenom);
fflush(stdin);
printf("Solde du client :\n");
scanf("%s",T[i].solde);
fflush(stdin);
}
}
int modif_client(){ //Fonction permettant l'ajout d'un client
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Entrez le Nom du client que vous voulez modifier\n");
scanf("%s",nom);
for(i=0 ; i<MAX_NBR_CLIENT; i++){
if (nom == T[i].nom || prenom == T[i].prenom){
printf("Nom :\n");
scanf("%s",T[i].nom);
fflush(stdin);
printf("Prénom :\n");
scanf("%s",T[i].prenom);
fflush(stdin);
printf("Solde :\n");
scanf("%s",T[i].solde);
fflush(stdin);
}
}
}
int recherche_affiche_client(){ //Fonction permettant la recherche c'un client et l'affichage de ses informations
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Veuillez saisir le nom du client recherché\n");
scanf("%s\n",nom);
for(i=0 ; i<MAX_NBR_CLIENT; i++){
int test=strcmp(T[i].nom , nom);
if (test == 0){
printf("Espace client de %s\n", nom);
printf("------------------------------------------------------------------\n");
printf("Nom : %s\n", T[i].nom);
printf("Prénom : %s\n", T[i].prenom);
printf("Solde actuelle : %p\n", T[i].solde);
}
}
}
int suprclient(){ //Fonction permettant de la supression d'un client
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Veuillez saisir le nom du client à suprimer :\n");
scanf("%s",T[i].nom);
for(i=0 ; i<MAX_NBR_CLIENT ; i++){
if(nom == T[i].nom){
strcpy(T[i].nom , T[i+1].nom);
strcpy(T[i].prenom , T[i+1].prenom);
strcpy(T[i].solde , T[i+1].solde);
}
}
for(i=0 ; i<MAX_NBR_CLIENT ; i++){
printf("\n");
printf("Nom du client : %s\n",T[i].nom);
printf("Prénom du client :%s\n",T[i].prenom);
printf("%s\n",T[i].solde);
}
}
int main(void){
int choix;
//system("color 4E");
// Menu du programme facilitant le choix de l'utilisateur sur les différentes actions
do{
printf("\n ------------------------------MENU------------------------------");
printf("\n 1/ Ajouter un nouveau client");
printf("\n 2/ Modifier l'espace d'un client");
printf("\n 3/ Rechercher et afficher le compte d'un client");
// printf("\n 4/ Virement d'un client vers un autre client");
printf("\n 5/ Suppression d'un compte client");
printf("\n 6/ Quitter-----------------------");
printf("\n");
printf("Veuillez rentrer le numéro correspondant à votre choix :\n");
scanf("%d\n",&choix);
switch (choix) { // Vérification du choix de l'utilisateur
case 1 : system("cls"); printf("\n Ajouter un nouveau client");
ajoutclient();
break;
case 2 : system("cls"); printf("\n Modifier l'espace d'un client");
modif_client();
break;
case 3 : system("cls"); printf("\n Rechercher et afficher le compte d'un client");
recherche_affiche_client();
break;
case 4 : system("cls"); printf("\n Suppression d'un comte client");
suprclient();
break;
case 5 : system("cls"); printf("\n Quitter-----------------------");
break;
default : system("cls"); printf("\n **ERROR** Veuillez taper un des chiffres correspondant :");
break;
}
} while (choix !=5);
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Je ne vois pas du tout mon erreur, appart peut être un dépassement de la taille du tableau mais je ne sais pas comment le résoudre...
j'espère que vous m'aideriez pour mon problème, merci d'avance !!!
Je dois effectuer un programme pour la gestion d'une banque pour un TP et malheureusement j'ai un problème de segmentation...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LETTRES 20
#define MAX_SOLDE 999999999
#define MAX_NBR_CLIENT 30
struct client{
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
char solde[MAX_SOLDE];
};
struct client T[MAX_NBR_CLIENT];
int ajoutclient(){
int i;
for(i=0 ; i<MAX_NBR_CLIENT; i++){
printf("Nom du client :\n");
scanf("%s",T[i].nom);
fflush(stdin);
printf("Prénom du client :\n");
scanf("%s",T[i].prenom);
fflush(stdin);
printf("Solde du client :\n");
scanf("%s",T[i].solde);
fflush(stdin);
}
}
int modif_client(){ //Fonction permettant l'ajout d'un client
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Entrez le Nom du client que vous voulez modifier\n");
scanf("%s",nom);
for(i=0 ; i<MAX_NBR_CLIENT; i++){
if (nom == T[i].nom || prenom == T[i].prenom){
printf("Nom :\n");
scanf("%s",T[i].nom);
fflush(stdin);
printf("Prénom :\n");
scanf("%s",T[i].prenom);
fflush(stdin);
printf("Solde :\n");
scanf("%s",T[i].solde);
fflush(stdin);
}
}
}
int recherche_affiche_client(){ //Fonction permettant la recherche c'un client et l'affichage de ses informations
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Veuillez saisir le nom du client recherché\n");
scanf("%s\n",nom);
for(i=0 ; i<MAX_NBR_CLIENT; i++){
int test=strcmp(T[i].nom , nom);
if (test == 0){
printf("Espace client de %s\n", nom);
printf("------------------------------------------------------------------\n");
printf("Nom : %s\n", T[i].nom);
printf("Prénom : %s\n", T[i].prenom);
printf("Solde actuelle : %p\n", T[i].solde);
}
}
}
int suprclient(){ //Fonction permettant de la supression d'un client
int i;
char nom[MAX_LETTRES];
char prenom[MAX_LETTRES];
printf("Veuillez saisir le nom du client à suprimer :\n");
scanf("%s",T[i].nom);
for(i=0 ; i<MAX_NBR_CLIENT ; i++){
if(nom == T[i].nom){
strcpy(T[i].nom , T[i+1].nom);
strcpy(T[i].prenom , T[i+1].prenom);
strcpy(T[i].solde , T[i+1].solde);
}
}
for(i=0 ; i<MAX_NBR_CLIENT ; i++){
printf("\n");
printf("Nom du client : %s\n",T[i].nom);
printf("Prénom du client :%s\n",T[i].prenom);
printf("%s\n",T[i].solde);
}
}
int main(void){
int choix;
//system("color 4E");
// Menu du programme facilitant le choix de l'utilisateur sur les différentes actions
do{
printf("\n ------------------------------MENU------------------------------");
printf("\n 1/ Ajouter un nouveau client");
printf("\n 2/ Modifier l'espace d'un client");
printf("\n 3/ Rechercher et afficher le compte d'un client");
// printf("\n 4/ Virement d'un client vers un autre client");
printf("\n 5/ Suppression d'un compte client");
printf("\n 6/ Quitter-----------------------");
printf("\n");
printf("Veuillez rentrer le numéro correspondant à votre choix :\n");
scanf("%d\n",&choix);
switch (choix) { // Vérification du choix de l'utilisateur
case 1 : system("cls"); printf("\n Ajouter un nouveau client");
ajoutclient();
break;
case 2 : system("cls"); printf("\n Modifier l'espace d'un client");
modif_client();
break;
case 3 : system("cls"); printf("\n Rechercher et afficher le compte d'un client");
recherche_affiche_client();
break;
case 4 : system("cls"); printf("\n Suppression d'un comte client");
suprclient();
break;
case 5 : system("cls"); printf("\n Quitter-----------------------");
break;
default : system("cls"); printf("\n **ERROR** Veuillez taper un des chiffres correspondant :");
break;
}
} while (choix !=5);
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Je ne vois pas du tout mon erreur, appart peut être un dépassement de la taille du tableau mais je ne sais pas comment le résoudre...
j'espère que vous m'aideriez pour mon problème, merci d'avance !!!
A voir également:
- Erreur de Segmentation C
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues