Bonjour/Bonsoir à tous et à toutes,

si je viens ici c'est pour que vous puissiez éclairer ma lanterne ! Cela fait un peu plus de 4h maintenant que je planche sur le problème et je ne sais plus ou aller pour pouvoir terminer ce projet à bien ! (c'est un projet de gestion de bibliothèque en C)

Je dois lire un fichier binaire (avec la fonction fread) dont voici le bout de code ci dessous

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int charger_livres(livre_t* livres)
{
	int nb_livres=0;
	flivre = fopen("fichierLivre", "ab+");
	if((flivre = NULL))
	{
	printf("Le fichier n'a pas pu être ouvert");
	} 
 
	rewind(flivre);
 
   while(fread(livres, sizeof(livre_t), MAX_LIVRES, flivre) != 0) {
	nb_livres= fread(livres, sizeof(livre_t), MAX_LIVRES, flivre);
}
	return nb_livres;
}
int charger_adherents(adherent_t* adherents)
	{
	int nb_adhr=0;
	fadhr = fopen("fichierAdh", "ab+");
	if((fadhr = NULL))
	{
	printf("Le fichier n'a pas pu être ouvert");
	} 
	rewind(fadhr);
	while(fread(adherents, sizeof(adherent_t), MAX_ADHR, fadhr) != 0) {
    nb_adhr= fread(adherents, sizeof(adherent_t), MAX_ADHR, fadhr);
}
	return nb_adhr;
	}
adherent_t et livres_t sont des structures définies dans mon header dont voici une partie

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef PRINCIPAL_H
#define PRINCIPAL_H
 
#define STR_MAX 50
#define MAX_ADHR 100
#define MAX_LIVRES 100
 
 
 
typedef struct {
  int  adr_cp;
  char adr_ville[STR_MAX];
  char adr_rue[STR_MAX];
} adresse_t;
 
typedef struct {
  int       adh_num;
  char      adh_nom[STR_MAX];
  adresse_t adh_adresse;
  int       adh_nb_emprunts;
} adherent_t;
 
typedef struct {
  int  liv_num;
  char liv_titre[STR_MAX];
  struct {
    char nom[STR_MAX];
    char prenom[STR_MAX];
  }   liv_auteur;
  int liv_emprunteur;
} livre_t;
 
 
FILE *fadhr;
FILE *flivre;
Comme vous le voyez les FILE machin sont en globales, donc ils ne précèdent pas les fopen.

Cependant, lorsque je fais ceci, que je compile, aucune erreur, tout est cool.
Quand j’exécute, je tombe sur une erreur de segmentation... Et je n'arrive pas du tout à trouver pourquoi.
J'ai demander de l'aide auprès d'amis mieux qualifié que moi en ce domaine, ils ne savent pas non plus... (et même mon meilleur amis le plus fidèle: google...)
Je fais appel alors à votre intelligence et à votre expérience afin de soulever une armée pour vaincre ces erreurs de segmentation qui nous pourrissent la vie !

En vous remerciant par avance de votre aide,

Ascheritt, codeur en bouse.