原始代码崩溃
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。