Fonction qui renvoit un tableau de structure contenant des chaines de caractères
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:
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