【发布时间】:2010-03-08 02:49:16
【问题描述】:
如果找到某个特定键,我会尝试增加它的值。出于某种原因,当我从哈希表中转储所有 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);
}
}
任何想法将不胜感激。
【问题讨论】:
-
修复:我将第二个插入替换为:(ov)++; g_hash_table_insert(table, g_strdup(key), ov);