我正在尝试使用 GHashTable
在我的代码中。我将使用 int
作为我的键,使用结构体作为我的值。我的问题:
- 我是否必须为用作键的
int
分配内存,或者我可以在插入和查找函数中使用局部变量吗? g_int_to_pointer
有何作用?- 如果我正在编写
GDestroyFunction
,我是否必须释放任何内存?
最佳答案
GINT_TO_POINTER
(注意大写字母)将 32 位 int
打包到指针的空间中,该指针可以是 32 位或 64 位。例如,您可以使用此宏将 int
作为信号的 user_data
参数传递,同时避免为它们分配内存。然后在信号处理程序中,使用 GPOINTER_TO_INT 来获取 int。不要尝试取消引用指针!
关于c - 使用 GLib 中的 GHashTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121665/