int, time_t 및 char *를 포함하는 구조체의 인스턴스로 GHashTable을 작성하려고합니다.GHashTable에 비 포드 구조체 삽입
제 질문은 어떻게 구조체의 인스턴스를 GHashTable에 삽입합니까? 문자열이나 int (g_str_hash와 g_int_hash를 각각 사용하는 방법)를 삽입하는 방법에 대한 예제가 많이 있지만, g_direct_hash를 사용하고 싶습니다. 그 예제를 찾을 수없는 것 같습니다.
이상적으로, 내 코드는 다음과 같습니다
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);
분명히이가 컴파일되지 않는 올바르지 않습니다. 누구든지 내가 원하는대로 할 수있는 예를 제공 할 수 있습니까? 감사합니다, 릭
'테이블 = g_hash_table_new_full (g_int_hash, g_int_equal, NULL, g_free)' – ntd
@ntd : 감사합니다, 고정! – unwind
하나의 개선점은 g_malloc 대신 g_new (struct mystruct, 1)를 사용하는 것입니다. 두 가지 오류 원인을 제거합니다 (잘못된 크기 할당 및 잘못된 유형의 메모리 할당). –