2016-11-17 4 views
0

Ich versuche, Zeichenfolgen GArrays mit einer GHashTable zuordnen. Bisher war ich nicht erfolgreich.Kann ein GArray als Wert in einer GHashTable verwendet werden?

Ich erkläre die Hash-Tabelle wie folgt:

hash_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); 

Und mein garray etwa so:

array = g_array_new(1, 1, sizeof(uint64_t)); 

Ich versuche, das Array in die Hash-Tabelle einzufügen. Beim Einstecken überprüfe ich, ob es da ist. Der Schlüssel scheint dort zu sein, aber der Wert, auf den er geschrieben wird, ist 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); 
} 

Ist was ich versuche zu tun? Wenn ja, wie vermeide ich den Wert NULL?

Antwort

0

Rookie Fehler. Zum Übergeben benötigt in &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); 
} 
Verwandte Themen