hashtable en C

hashtable en C - C - Programmation

Marsh Posté le 02-11-2005 à 14:50:09    

Bonjour je voulais savoir si il existait une structure de table de hashage dans le C de base.
 
Merci
 
 :hello:

Reply

Marsh Posté le 02-11-2005 à 14:50:09   

Reply

Marsh Posté le 02-11-2005 à 14:51:16    

Non, y'a rien en C de base, meme pas une liste chainée foireuse, alors une hashmap...

Reply

Marsh Posté le 02-11-2005 à 14:52:06    

je viens de tomber sur ça :
 
http://www.hmug.org/man/3/hcreate.php
 
je vais voir ..

Reply

Marsh Posté le 02-11-2005 à 14:54:11    

BUGS
 
     The interface permits the use of only one hash table at a time.
 
 
pas du bug de clown ca [:pingouino]

Reply

Marsh Posté le 02-11-2005 à 15:16:51    

EpoK a écrit :

Bonjour je voulais savoir si il existait une structure de table de hashage dans le C de base.


Des gens se sont penchés sur le problème :  
 
http://users.footprints.net/~kaz/kazlib_doc/
 
Sinon, comme toujours, voir si il n'y a pas ce qu'il faut dans la glib2... genre ça :
 
http://glib2.activeventure.biz/glib-Hash-Tables.html


Message édité par Emmanuel Delahaye le 02-11-2005 à 15:19:34

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-11-2005 à 15:18:57    

Citation :

7.1.16 The hash_init function
 
 
Synopsis
 
    hash_t *hash_init(hash_t *, hashcount_t, hash_comp_t,
        hash_fun_t, hnode_t **, hashcount_t);


 
y'en a y devrait meme pas avoir le droit d'ecrire de la doc

Reply

Marsh Posté le 02-11-2005 à 15:23:01    

chrisbk a écrit :

Citation :

7.1.16 The hash_init function
 
 
Synopsis
 
    hash_t *hash_init(hash_t *, hashcount_t, hash_comp_t,
        hash_fun_t, hnode_t **, hashcount_t);


 
y'en a y devrait meme pas avoir le droit d'ecrire de la doc


Quel est le problème ? L'absence de nom des paramètres ? Le suffixe _t réservé par POSIX ?


Message édité par Emmanuel Delahaye le 02-11-2005 à 15:25:38

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-11-2005 à 15:30:00    

l'absence de nom de parametre est deja passible de mutilation, certes, mais lorsque c'est combiné à  l'explication des arguments dans une phrase longue est touffue alors la peine de mort est un minimum


Message édité par chrisbk le 02-11-2005 à 15:30:30
Reply

Marsh Posté le 02-11-2005 à 15:33:37    

Tu balances 2 fois le parametre hashcount_t :pt1cable:

Reply

Marsh Posté le 02-11-2005 à 15:48:18    

Non, tu balances deux fois un paramètre de type hashcount_t, ce qui n'est pas pareil [:aloy]

Reply

Marsh Posté le 02-11-2005 à 15:48:18   

Reply

Marsh Posté le 02-11-2005 à 15:49:46    

une question en passant, en utilisant ça :
 
http://www.hmug.org/man/3/hcreate.php  
 
c'est possible d'afficher le contenu de la table (key,data) à un instant t ?

Reply

Marsh Posté le 02-11-2005 à 21:28:51    

EpoK a écrit :

une question en passant, en utilisant ça :
 
http://www.hmug.org/man/3/hcreate.php  
 
c'est possible d'afficher le contenu de la table (key,data) à un instant t ?


sans doute http://pleac.sourceforge.net/pleac_cposix/hashes.html

Reply

Marsh Posté le 02-11-2005 à 22:48:09    

glib, c'est sans doute le mieux.

Reply

Marsh Posté le 05-11-2005 à 14:24:26    

EpoK a écrit :

une question en passant, en utilisant ça :
 
http://www.hmug.org/man/3/hcreate.php  
 
c'est possible d'afficher le contenu de la table (key,data) à un instant t ?


 
j'utilise aussi <search.h> pour une table.
Le probleme vient quand elle est pleine, et que j'essaie d'ajouter un nouvel element:
seg fault...
 
Il est dit qu'il faut rapeller hcreate avec la nouvelle taille ( que j'incrémente bien sur)
mais cela ne mache pas ... Une idée ?  

Reply

Marsh Posté le 05-11-2005 à 15:33:16    

oui, utilise glib, c'est nettement plus portable

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed