Salut tout le monde,

J'ai une question assez spécifique je suis pas sûr que l'on puisse m'aider mais je tente quand même alors voilà j'utilise les hashmap proposé par POSIX fichier <search.h>.

Le problème c'est qu'au bout d'un moment et pourtant je n'ai qu'une centaine de mot il remet le compteur à zéro sans que je comprenne pourquoi c'est à dire :
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
 
/* ajoute word dans la table */
void hash_table_add(char *word) {
		e.key = word;
 
		/*
		* Test si le mot n'est pas dans notre HashTable
		* auquel cas on le rajoute
		*/
		if((ep = hsearch(e, FIND)) == NULL) {
			/* e.data est un int
			* permet d'associer la key de manière unique
			*/
			printf("%s\n",e.key);
			e.data = (void *) 1;
			ep = hsearch(e, ENTER);
			/* there should be no failures */
			if (ep == NULL) {
				fprintf(stderr, "entry failed\n");
				exit(EXIT_FAILURE);
			}
		} else { // sinon on incrémente son data de 1
			ep = hsearch(e, FIND);
			/*int data = (int) ep->data + 1;
			ep->data = (void*) data;*/
			ep->data += 1;
			hsearch(*ep,ENTER);			
		}
 
 
}
J'appelle ma fonction est moment il va plus trouver un mot qui est pourtant bien dans la table et il va donc réinitialisé le compteur...