LINUX.ORG.RU

ГТКшные функции - освобождение памяти


0

0

1)
gchar *z1, *z2;
gtk_tree_model_get (GTK_TREE_MODEL(model), &iter, COLUMN_1, &z1, COLUMN_2, &z2, -1);
g_free (z1); g_free (z2); <--- нужно ли здесь освобождать (после использования строк)?

2)
const gchar *p = gtk_entry_get_text (GTK_ENTRY (entry));
g_free (p); <--- нужно ли здесь освобождать (после использования строки)?

anonymous

Читаем АПИ:

1)If appropriate, the returned values have _to_be_freed_ or unreferenced.

2)This string points to internally allocated storage in the widget and _must_not_be_freed_, modified or stored.

Pi ★★★★★
()
Ответ на: комментарий от Pi

Спасибо, комрад Pi!
Есть еще вопросы про освобождение памяти.


Допустим есть строки -
gchar *s = g_strdup ("lor rulit");
gchar *t = g_strdup ("nipadecki");
GSList *x = NULL;
x = g_slist_append (x, s);
x = g_slist_append (x, t);
- можно ли сделать g_free (s); g_free (t); и продолжать юзать список x?
В смысле эти 2 элемента в списке останутся или эти строки нужно освобождать только после того, как перестанешь пользоваться списком?

еще вариант -
gchar *t;
t = g_strdup ("12");
x = g_slist_append (x, t);
t = g_strdup ("23");
x = g_slist_append (x, t);
t = g_strdup ("34");
x = g_slist_append (x, t);
- можно ли так делать (если хочешь в список добавить 3 строки)?

и еще -
gcar *s = g_strdup ("sunch feat nika"); gtk_label_set_tesxt (l, s);
s = g_strdup ("i will always love you"); gtk_label_set_tesxt (m, s);
s = g_strdup ("mp3"); gtk_label_set_tesxt (n, s);
- перед вторым и третим g_strdup нужно ли делать g_free?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.