bonjour à tous,
j'ai un probleme de plantage dans la focntion qui consiste à remplir la table de hachage par les mots lus à partir d'un fichier texte
voila 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
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
int LireFichierEntree(char const *langue, TableHachageMot DblTableHash[], int *pNbLignes)
{
	int retour = -1;
	FILE *fdesc = NULL;
	if(pNbLignes != NULL)
		*pNbLignes = 0;
	fdesc = ouvrir_fichier_entree(langue);
	if ( fdesc==NULL )
	{
		perror("fopen");
	}
	else
	{
 
		int ancienneLigne = -1;
		int ancienneColonne = -1;
		int ligne = 0;
		int colonne = -1;
		ssize_t res;
		char* buff = NULL;
		size_t tailleBuff = 0;
 
 
 
		printf("Lecture du fichier texte (prog: 1 point pour %d lignes)...\n", PROG_NBLIGNES);
		while ( (res=get_word(fdesc, &buff, &tailleBuff, &ligne, &colonne))>0 )
		{
			if(ancienneLigne == ligne)
			{
				static char const separ[] = {SEPARATEUR, '\0'};
 
 
 
 
				#if 0
				AfficherEspaces(ancienneColonne);
 
				puts(res);
				#endif
				InsertionDoubleHashEx(DblTableHash, res, ancienneLigne, ancienneColonne);
			}
			else
			{
				if(ligne%PROG_NBLIGNES==0)
					putchar('.');
 
			}
 
			/* Mémorise l'ancien mot et son n° de ligne */
			ancienneLigne = ligne;
			ancienneColonne = colonne;
			/* Pour de meilleures performances,
			  on bosse en double buffer plutot que recopier à chaque fois.*/
 
		}/*while*/
 
		if(res < 0)
			perror("get_word");
		else
		{
			retour = 0; /* OK */
			putchar('\n');
			printf("Lu %d lignes.\n", ligne);
			if(pNbLignes != NULL)
				*pNbLignes = ligne;
		}
 
		/* Nettoyage */
		free(res),free(buff), buff=NULL, tailleBuff=0;
 
		fclose(fdesc), fdesc=NULL;
	}/*if fdesc*/
	return retour;
}
des idées svp?
merci