gtk3获取列表数据造成崩溃的问题

⌚Time: 2025-10-13 23:50:00

👨‍💻Author: Jack Ge

原始代码崩溃

gchar *name;
bool type;
bool  check;
// 获取行数据
gtk_tree_model_get(model, &iter, 
                          COLUMN_NAME, &name,
                          COLUMN_TYPE, &type,
                          COLUMN_CHECKED, &check,
                          -1);

修改后代码正常运行

gchar *name;
gboolean type;
gboolean  check;
// 获取行数据
gtk_tree_model_get(model, &iter, 
                          COLUMN_NAME, &name,
                          COLUMN_TYPE, &type,
                          COLUMN_CHECKED, &check,
                          -1);

差距就是获取的数据类型,之前我直接写成了bool类型,以为和gboolean一样,幻想gtk会有类似于这种定义

#define gboolean bool

但是结果导致崩溃。有可能gtk的gboolean和bool类型和长度不一样。

总结:gtk程序要用gtk的东西:gchar、g_print、g_free、gboolean之类的。而不是char、printf、free、bool。