我尝试使用GArrays将字符串映射到GHashTable。到目前为止,我还没有成功。
我声明哈希表是这样的:
hash_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
我的GArray是这样的:
array = g_array_new(1, 1, sizeof(uint64_t));
我试图将数组插入哈希表中。插入后,我会检查它是否存在。密钥似乎在那里,但它散列的值是NULL
。
GArray *old_array;
g_hash_table_insert(hash_table,
(gpointer) g_strdup(path),
(gpointer) array);
if (g_hash_table_lookup_extended(hash_table,
path, NULL, (void **) old_array)) {
printf("stored value is %p\n", old_array);
}
我正在尝试做什么?如果是这样,我该如何避免NULL
值?
答案 0 :(得分:0)
菜鸟错误。需要传递&old_array
。
GArray *old_array;
g_hash_table_insert(hash_table,
(gpointer) g_strdup(path),
(gpointer) array);
if (g_hash_table_lookup_extended(hash_table,
path, NULL, (void **) &old_array)) {
printf("stored value is %p\n", old_array);
}