gtk_list_store_clear()函数在C中引发分段错误

问题描述 投票:1回答:1

我正在用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
c gtk gtk3 glade
1个回答
0
投票

如果在信号处理程序运行之前破坏构建器对象(使用g_object_unref(builder)),liststore2可能指向释放的内存。

如果liststore2是独立的(即未被其他内容(例如GtkTreeView)引用,则会发生这种情况]

[gtk_builder_get_object不是增加对象的引用计数

© www.soinside.com 2019 - 2024. All rights reserved.