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*/
lca.c /*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*/
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*/
th.c /*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*/
Je reçois l'erreur
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]); }
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
Partager