2016-11-17 32 views
0

我正在嘗試使用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的值?

回答

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); 
} 
相關問題