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

问题描述:

我正在尝试使用GHashTable将字符串映射到GArrays。到目前为止,我还没有成功。是否可以使用GArray作为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的值?

新人的错误。需要通过&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); 
}