Problème utilisation fonction en boucle
	
	
		Bonjour,
Dans le cadre d'un programme, j'utilise plusieurs fonctions :
La première fonction permet de parcourir un fichier, et de le lire ligne à ligne. Chaque ligne est de la forme 3 caractères pour un mois, un espace, 3 chiffres. ex : "jan 101"
La deuxième fonction traite ces lignes de la façon suivante :
on recupère la ligne, et selon le mois, on ajoute le chiffre de la ligne dans un fichier nommé : mois-datedelancement.txt 
La date fait 12 caracteres.
ex d'un fichier: fev-070627180403.txt
                   mois-AAMMJJHHMinMinSS.txt
Si le fichier n'existe pas ( ce qui est le cas au lancement du programme ), il est crée. 
Après utilisation du programme, celui-ci plante. Il arrive  à réaliser un appel à la fonction traite_ligne, mais la 2ème ligne n'est pas traitée. 
Il s'agit peut être d'un problème de mémoire ? 
Je vous remercie d'avance de votre aide,
Isk
	Code:
	
| 12
 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
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 
 |  
//fonction qui traite un fichier chemin est le chemin complet du fichier et
//date est la date du lancement du programme
 
void traite_fichier(char *chemin,char *date) {
 
    char ligne[256];
    FILE* fic;
 
    fic=malloc(sizeof(FILE));
	fic=fopen(chemin,"r");    
    if ( fic == NULL ) { 
    printf("Erreur de lecture du fichier\n");
    return 0;
    }
 
     //on appelle ici la fonction traite_ligne en boucle jusqu'à ce qu'on ait plus 
     //de ligne
 
    while( fgets(ligne, sizeof ligne ,fic) != NULL )  {
      traite_ligne(ligne,date);
    }
 
    printf("\n");
    printf("%s a ete traite\n",chemin);
    fclose(fic);
    free(fic);
    free(ligne);
}
 
 
 
 
//fonction qui traite les lignes
// char* sub_string(char* entree,int deb, int fin) 
// est une fonction qui ressort les caracteres de entree[deb] à entree[fin]
 
void traite_ligne(char * ligne,char * date) {
	char nomfic[16];
	FILE* fichier;
 
	fichier= malloc(sizeof(FILE));
 
	strcpy(nomfic,sub_string(ligne,0,2));
	strcat(nomfic,"-");
	strcat(nomfic,date);
	strcat(nomfic,".txt");
 
    fichier=fopen(nomfic, "a");
	fprintf(fichier,"%s\n",sub_string(ligne,4,6));
	fclose(fichier);
 
	free(nomfic);
	free(fichier);
} |