手動記憶體管理
您可以自行配置及釋放堆積記憶體。
如果操作時不夠小心,可能會導致當機、錯誤、安全漏洞和記憶體泄漏。
C 範例
使用 malloc
配置每個指標時,都必須呼叫 free
:
void foo(size_t n) {
int* int_array = malloc(n * sizeof(int));
//
// ... lots of code
//
free(int_array);
}
Memory is leaked if the function returns early between malloc
and free
: the pointer is lost and we cannot deallocate the memory. Worse, freeing the pointer twice, or accessing a freed pointer can lead to exploitable security vulnerabilities.