2015-03-18 50 views

回答

0

我認爲「將免費擺脫內存......」是指free()函數。是的,free()函數將釋放由單個malloc()calloc()realloc()調用分配的所有內存。

在致電free()之前,請確保您已完全取消鏈接。調用free()之後任何對內存的使用(讀或寫)都是未定義的行爲。

1

不除非你明確地釋放它。 free接受一個指針並將該內存標記爲可供將來使用。

您必須釋放該鏈接列表元素使用的內存,然後移動指針。如果您在釋放該元素之前丟失了指向該元素的所有指針,則無法釋放該元素,從而導致內存泄漏。

2

免費將釋放您指向它的任何內容。沒有什麼會發生魔法。 YOu必須在未鏈接的元素上自由地呼叫

通過引用計數指針(如C++中的shared_ptr)或垃圾收集(在C#中,Java,javascript中提供了您希望的內容(不再使用時自動釋放內存) ,...)