fclose - segmentation fault
Bonsoir,
voilà quelques heure que j'écume les forums en quête d'une solution à mon problème, je ne trouve malheureusement pas la solution (soit cela ne correspond pas, soit je ne comprends pas tout.
Alors voilà, sous dev C++ mon code fonctionne très bien, mais sous Ubuntu, j'ai l'erreur "segmentation fault" qui apparaît. J'ai essayé de débuger avec gdb, voici le résultat :
"Starting program: /home/ubuntu/workspace/chargevols
*** Error in `/home/ubuntu/workspace/chargevols': free(): invalid size: 0x000000000060b010 ***
Program received signal SIGABRT, Aborted.
0x00007ffff7a4bcc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. "
Voici le module fautif :
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
| void chargementVols(){
FILE *fichier_vols = fopen("vols2.txt","r");
int i = 0, j =0, retour;
char nomVille[30];
struct vol vol;
// test ouverture fichier
if (fichier_vols == NULL) { // si ouverture fichier ko
printf("Erreur de chargement du fichier des vols.\n");
}
else { // si ouverture fichier ok
while (!feof(fichier_vols)){ // possibilite de faire un tableau dynamique avec un malloc et de supprimer #DEFINE NB_JONCTIONS ?
retour = fscanf(fichier_vols,"%d %s %s %s %s %s %d %s %s %f ", &vol.jour, vol.date, vol.num_vol, vol.villeDepart, vol.villeArrivee, vol.heure_depart, &vol.duree, vol.heure_arrivee, vol.nom_appareil, &vol.prix);
if (retour != EOF){
tabVol[i] = vol; // insertion de la ligne du fichier dans le nom de chaque structure jonction
i++;
}
}
}
fclose(fichier_vols), fichier_vols = NULL;
} |
Merci pour votre aide !