Windows 32 ビット用の最後のオールインワン バンドル GTK+ をインストールしました。
関数に問題があります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+ ライブラリまたはコードに何か問題がありますか? ありがとう