int do_memory()
{
int * empty_ptr = (int *) malloc(sizeof(int));
*empty_ptr = 5;
return *empty_ptr;
}
...
int b = do_memory();
free(&b); //obviously not valid
當b
超出範圍,我會正確地假設empty_ptr中的內存仍然存在?但不可能免費,因此這是不好的代碼?通過返回「本地」堆分配對象可能的內存泄漏
「當b超出範圍時,我認爲empty_ptr中的內存仍然存在?」是。 「但是不可能免費,因此這是不好的代碼?」是的。 –