Bonjour,

j'ai créé une fonction pour écrire une liste chainée dans un fichier.txt. Tout fonctionne, mais une fois la chaine écrite les informations contenues semble perdue, des caractères étrange remplace les données. Je ne comprends pas, car la fonction reçoit en argument la tête, mais pas un pointer, elle ne peut donc pas modifier la tête .. n'est-ce pas...?

voici le code de la fonction :
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
void saveFaits(char* fichier_fait, S_FAIT* liste_des_faits){
	FILE *pt_fichier=NULL;
	char *ligne_fait=NULL;
	S_FAIT* courant=liste_des_faits;
	// ouverture du fichier en ecriture de texte
	if ( (pt_fichier=fopen(fichier_fait,"w"))){
		// boucle sur chaque fait
		while(courant != NULL)
		{
			// recup du fait au format texte
			ligne_fait = courant->Data_fait;
			// ecriture du fait dans le fichier ouvert
			fprintf(pt_fichier,ligne_fait);
			fprintf(pt_fichier,"\n");
			// liberation de la memoire allouee au fait
			free(ligne_fait);
			// saut sur le fait suivant
			courant = courant->suiv;
		}
		// fermeture du fichier
		fclose(pt_fichier);
        printf("%s",liste_des_faits->Data_fait);
	}
}
Merci, bonne journée