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