我有這樣的代碼:如何釋放內存?
#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkWidget *window, *fixed, *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_widget_set_size_request(window, 400, 400);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "Test");
gtk_widget_show(window);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
fixed = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), fixed);
gtk_widget_show(fixed);
button = gtk_button_new_with_label("click");
gtk_fixed_put(GTK_FIXED(fixed), button, 30, 30);
gtk_widget_show(button);
gtk_main();
return 0;
}
我試圖釋放內存,但失敗。也許有人修改這個代碼,以便釋放內存? 我讀到的GTK內存管理和我在它在很大程度上是如何工作的理解,但無法釋放內存...
我瞭解這些功能如何工作gtk_widget_destroy(),g_object_ref_seek(),g_object_ref()和g_object_unref( ),並且我不想在這些函數或文檔中接收引用,我希望修改某個代碼,以便釋放內存。
謝謝!
你打算釋放哪些內存?這段代碼中沒有什麼特別的,你需要發佈。 – nos
你如何斷定內存是不是**被釋放?你究竟解決了什麼問題? – user4815162342
我想釋放佔用窗口,固定和按鈕變量的內存。我的結論是,當我使用valgrind運行代碼時,內存不會被釋放。 –