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