J'essaie d'incrémenter la valeur d'une clé spécifique si elle a été trouvée. Pour une raison quelconque, je continue d'obtenir l'adresse (pointeur) lorsque je vide tous les keys:values
de la table de hachage.GLib Hash Table - Pointer
Output
a: 153654132 // should be 5
b: 1
c: 153654276 // should be 3
d: 1
e: 1
f: 153654420 // should be 3
int proc()
{
struct st stu;
gpointer ok, ov;
//... some non-related code here
if(!g_hash_table_lookup_extended(table, key, &ok, &ov)){
stu.my_int = g_malloc(sizeof(guint));
*(stu.my_int) = 0;
g_hash_table_insert(table, g_strdup(key), GINT_TO_POINTER(1));
}else{
stu.my_int = g_malloc(sizeof(guint));
*(stu.my_int)++;
g_hash_table_insert(table, g_strdup(key), stu.my_int);
}
}
Toutes les idées seront en mesure d'apprécier.
FIXE: Je l'ai remplacé le deuxième insert comme: (ov) ++; g_hash_table_insert (table, g_strdup (clé), ov); – Mike