c - 使用 GLib 中的 GHashTable?

标签 c glib

我正在尝试使用 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/

相关文章:

linux - 将 libgio.so 与 libz.so 链接时未解析的符号 (linux)

c - 如何在纯 C 中将 RGB 缓冲区转换(编码)为 JPEG?

c - printf(3)中的 "3"表示什么?

c - 创建自定义 gsource 时如何使用串行引脚?

ubuntu - 将 QT5 应用程序部署到 ubuntu 12.04

c - GValue 初始化/终结的必要性

process - 生成异步进程无法与 pkexec 一起使用

c - 更新 MD5 哈希值?

c - 在 2 个变量之间生成随机数

c - 辅助进程完成时终止 Main