У меня есть этот код:Как освободить память?
#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 (), и я не хочу получать ссылки на эти функции или документацию, я хочу изменить кого-то этот код, чтобы освободить память.
Thank!
Какую память вы намерены освободить? В этом коде нет ничего особенного, что вам нужно будет освободить. – nos
Как вы заключаете, что память ** не выпущена **? Какую проблему вы решаете, точно? – user4815162342
Я хочу освободить память, занятую окном, фиксированной и кнопочной переменной. Я пришел к выводу, что память не освобождается, когда я запускаю код с valgrind. –