Bonjour,

il s'agit qu'une table de hachage de maniere à ce que chaque case du tableau contient une liste chainée, j'utilise 4 modules:

lca.h /*liste chainee*/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
typedef struct CELLULE {
	char* key;	
	int  data;
	struct CELLULE* suivante;
}CELLULE;
typedef CELLULE* LCA;      /*je définis le type liste chainée qui               pointe  vers la   première Cellule */
 
void detruire(LCA *chaine);  /*prototype de la fonction detruire*/
lca.c /*liste chainee*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
#include "lca.h"  
void detruire(LCA *chaine){       /*implementation de detruire*/
 
	if ((*chaine)!=NULL){		
		LCA tmp= *chaine;
		*chaine=(*chaine)->suivante;
		free(tmp);
		tmp=NULL;
		detruire(&(*chaine));
	}
}

th.h /*table de hachage*/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
include "lca.h"
#define CAPA 4
typedef LCA  TH[CAPA];   /*définir le type table de hachage*/
 
void vider(TH* hash);   /*prototype de la fonction vider*/
th.c /*table de hachage*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#include "th.h"
void vider(TH* hash) {
 
	for(int i=0 ; i<CAPA ; i++)
 
		detruire(&(*hash)[i]);
}
Je reçois l'erreur
th.o: In function `vider':
/REP/th.c:23: undefined reference to `detruire' . Or le prototype de cette fonction est inclus dans th.c a travers th.h elle même incluant lca.h !! Quand je change les argument de détruire je reçois une erreur de mauvais type d'arguments ??!!!

MERCI D'AVANCE pour toute réponse