Hash table problems, again
- From: Robert_Gasch/PeopleSoft peoplesoft com
- To: gtk-list redhat com
- Subject: Hash table problems, again
- Date: Sat, 23 Jan 1999 20:57:48 +0100
Hi,
I've already asked about this a while ago, but didn't get any
reactions. I'm still stuck on this, so I'm trying again ...
I can't quite figure out why the attached progrem doesn't just
store and retrieve the strings "0" - "19" like it should. Can
anybodypoint out to me what I'm doing wrong? It seems that the
hash table does not copy key values, so giving each item a new
string seems only appropriate but I'm still missing something.
It's probably something simple, but I can't seem to see it (maybe
I've just been looking at the same piece of code for too long) ... If
anybody out there has used hash tables, I'd apprecate a word
of advice.
Thanks a lot for any help
--> Robert
----------------------------------- cut here ------------------------------
#include "glib.h"
#include <stdio.h>
guint TFWhash (gconstpointer key);
gint TFWhashcmp (gconstpointer a, gconstpointer b);
int main (int argc, char **argv)
{
int i;
char *s;
GHashTable *h;
h = g_hash_table_new (TFWhash, TFWhashcmp);
for (i=0; i<20; i++)
{
s = new char[80];
sprintf (s, "%d", i);
g_hash_table_insert (h, s, s);
}
s = new char[80];
for (i=0; i<20; i++)
{
char *v;
sprintf (s, "%d", i);
v = (char *) g_hash_table_lookup (h, s);
printf ("%s\n", v);
}
}
guint TFWhash (gconstpointer key)
{
char *s = (char *)key;
int i, v=0,
l=strlen(s);
for (i=0; i<l; i++)
v = (64*v + s[i])%101;
return (v);
}
gint TFWhashcmp (gconstpointer a, gconstpointer b)
{
return (strcmp((char *)a,(char *)b));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]