是否可以将GArray用作GHashTable中的值?

时间:2016-11-17 03:06:28

标签: c hashtable glib

我尝试使用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值?

1 个答案:

答案 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);
}