特定のキーが見つかった場合、その値をインクリメントしようとしています。何らかの理由keys:values
で、ハッシュ テーブルからすべてをダンプすると、(ポインター) アドレスを取得し続けます。
Output
a: 153654132 // should be 5
b: 1
c: 153654276 // should be 3
d: 1
e: 1
f: 153654420 // should be 3
int proc()
{
struct st stu;
gpointer ok, ov;
//... some non-related code here
if(!g_hash_table_lookup_extended(table, key, &ok, &ov)){
stu.my_int = g_malloc(sizeof(guint));
*(stu.my_int) = 0;
g_hash_table_insert(table, g_strdup(key), GINT_TO_POINTER(1));
}else{
stu.my_int = g_malloc(sizeof(guint));
*(stu.my_int)++;
g_hash_table_insert(table, g_strdup(key), stu.my_int);
}
}
どんなアイデアでも大歓迎です。