[英]gtk+ clear GList
我需要刪除所有並清除我的gtk +應用程序中的GList。 我怎樣才能做到這一點?
謝謝
釋放列表及其中的數據,然后清除列表的簡單方法如下:
g_list_foreach(list, g_free, NULL);
g_list_free(list);
list = NULL;
NULL
是空列表,因此最后一行將其清除,以便您可以再次使用它。
當然,如果您的數據應該由其他函數釋放,請使用該函數代替g_free()
作為ShinTakezou的說明。
您必須使用API釋放列表,並在UI應用程序中適當地更新包含列表的容器。
void g_list_free (GList *list);
這樣,分配用於創建列表的內存將被釋放,並且UI容器將刷新以顯示空白列表。
函數g_list_free可以完成這項工作,但是不要忘記在動態分配之前釋放數據,就像這里所說的那樣:在這種情況下,您必須遍歷列表的每個元素並使用g_free(如果使用g_malloc分配),或免費(如果已通過malloc分配),或與alloc函數匹配的任何內容(例如,刪除C ++中的new……)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.