gtk_list_store_clear() 函数在 C 中引发分段错误
gtk_list_store_clear() function raises Segmentation Fault in C
我正在用 C 编写一个使用 GTK 的程序。
我正在使用 GtkListStore 来显示来自数据库的一些数据。
在特定信号之后,我想删除 GtkListStore 中的所有行。
我使用了 gtk_list_store_clear() 函数,但它引发了分段错误。
我的代码有什么问题?
//Globally declared
GtkListStore *liststore2;
//Inside main() function
liststore2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore2"));
//Inside signal handler function
gtk_list_store_clear(liststore2); //Error comes from here
如果在信号处理程序运行之前销毁生成器对象(使用 g_object_unref(builder)
),liststore2 可能指向释放的内存。
如果 liststore2 是独立的(即不被其他东西引用,例如 GtkTreeView),就会发生这种情况
gtk_builder_get_object 不会 增加对象
的引用计数
我正在用 C 编写一个使用 GTK 的程序。 我正在使用 GtkListStore 来显示来自数据库的一些数据。 在特定信号之后,我想删除 GtkListStore 中的所有行。 我使用了 gtk_list_store_clear() 函数,但它引发了分段错误。
我的代码有什么问题?
//Globally declared
GtkListStore *liststore2;
//Inside main() function
liststore2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore2"));
//Inside signal handler function
gtk_list_store_clear(liststore2); //Error comes from here
如果在信号处理程序运行之前销毁生成器对象(使用 g_object_unref(builder)
),liststore2 可能指向释放的内存。
如果 liststore2 是独立的(即不被其他东西引用,例如 GtkTreeView),就会发生这种情况
gtk_builder_get_object 不会 增加对象
的引用计数