2012年2月1日 星期三

C語言- dynamic memory allocation

void *malloc(size_t size);
http://www.cplusplus.com/reference/clibrary/cstdlib/malloc/

void free(void *ptr);
http://www.cplusplus.com/reference/clibrary/cstdlib/free/

透過malloc()所分配出來的空間必須由使用者呼叫free()才能歸還給系統。初學者常犯的錯誤之一,就是忘了用free()歸還空間,這會造成程式佔用太多記憶體,此現象稱為memory leakage。相反的,如果空間已用free()歸還了,卻還試著去使用那塊記憶體,則會發生Segmentation Fault (core dumped)的錯誤。


Reference:
http://programming.im.ncnu.edu.tw/Chapter13.htm

沒有留言:

張貼留言