Je tente de construire un GHashTable d'instances d'une structure contenant ints, un time_t et quelques char *.Insertion de structure non-pod dans un GHashTable
Ma question est, comment insérez-vous une instance d'une structure dans un GHashTable? il y a beaucoup d'exemples d'insertion d'une chaîne ou d'un int (en utilisant respectivement g_str_hash et g_int_hash), mais je suppose que je veux utiliser g_direct_hash, et je n'arrive pas à trouver d'exemples de cela.
Idéalement, mon code ressemblerait à ceci:
GHashtable table;
table = g_hash_table_new(g_direct_hash, g_direct_equal);
struct mystruct;
mystruct.a = 1;
mystruct.b = "hello";
mystruct.c = 5;
mystruct.d = "test";
g_hash_table_insert(table,mystruct.a,mystruct);
De toute évidence, ce qui est faux car il ne compile pas. Quelqu'un peut-il fournir un exemple qui fait ce que je veux? Merci, Rik
'table = g_hash_table_new_full (g_int_hash, g_int_equal, NULL, g_free);' – ntd
@ntd: Merci, et fixe! – unwind
une amélioration est d'utiliser g_new (struct mystruct, 1) au lieu de g_malloc. supprime deux sources d'erreur (allocation de taille incorrecte et affectation de la mémoire au mauvais type). –