GTK +:使用gtk_label_set_text泄漏内存

时间:2013-05-27 09:55:27

标签: windows gtk

我已经安装了最新的一体化GTK + for Windows 32位。

我遇到函数gtk_label_set_text的问题:它在递归调用时会泄漏内存

下面有一个示例代码。它每20秒泄漏大约1Mb的内存

#include <gtk/gtk.h>

gboolean update_label(gpointer);

int main(int argc, char ** argv)
{
    GtkWidget *window;
    GtkWidget *label = NULL;
    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    label = gtk_label_new(NULL);
    gtk_container_add(GTK_CONTAINER(window),label);

    gtk_widget_show_all(window);
    g_timeout_add(10,(GtkFunction)update_label,label);

    gtk_main();
    return 0;
}

gboolean update_label(gpointer data)
{
    GtkWidget *label = data;
    gchar tmpbuf[100];
    sprintf(tmpbuf , "Random text %i\n",rand());
    gtk_label_set_text(GTK_LABEL(label),tmpbuf);

   return TRUE;
}

代码创建一个带标签的窗口,每隔10毫秒更新一次。 有人能帮我吗? GTK +库或我的代码中有什么问题吗? 谢谢

1 个答案:

答案 0 :(得分:0)

这很可能是重复Memory leak in GTK under Windows 7 in gtk_widget_queue_draw。您使用的GTK版本是什么?