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 :
Merci pour votre aide !
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 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; }
Partager