簡體   English   中英

gtk +清除GList

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM