Bonjour à tous,
Voila, j'ai une erreur de segmentation. J'ai utilisé gdb, mais ça n'a rien donné.
Je pense que c'est une erreur d'allocation.
Pouvez vous m'éclairer s'il vous plait?
J'essaye de lire ce fichier ( sauvegarde.txt) :
test;272003;9964;Sun Jul 3 15:36:54 2011
sauvegardeNbFichier.txt;272149;1;Sun Jul 3 15:36:03 2011
teststruct.txt;272144;0;Sun Jul 3 15:36:56 2011
projetcorrige.c;272129;3561;Sun Jul 3 15:36:38 2011
..;271152;4096;Tue Jun 28 10:30:24 2011
sauvegarde.txt;272148;0;Sun Jul 3 15:36:56 2011
.;271372;4096;Sun Jul 3 15:36:54 2011
Pour remplir la structure suivante, avec la fonction lireSauvegarde.
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 struct fic{ long inode; char * nom; int taille; char *dateModif; }; FIC * lireSauvegarde() { int i; int nb=lireNbFicSauvegarde(); FIC *fichiers; fichiers=(FIC *)malloc(nb*sizeof(FIC)); FILE* fichier = NULL; fichier = fopen("sauvegarde.txt", "r"); for(i=0;i<nb;i++) { fichiers[i].nom=(char *)malloc(40*sizeof(char)); fichiers[i].dateModif=(char *)malloc(60*sizeof(char)); fichiers[i].inode=(long)malloc(1*sizeof(long)); fichiers[i].taille=(int)malloc(1*sizeof(int)); fscanf(fichier, "%s;%ld;%d;%s", &(fichiers[i].nom), &(fichiers[i].inode), &(fichiers[i].taille),&(fichiers[i].dateModif)); printf("%s;%ld;%d;%s\n", fichiers[i].nom,fichiers[i].inode, fichiers[i].taille,fichiers[i].dateModif); } return fichiers; }
Merci d'avance pour votre aide les amis
Partager