快速最佳实践问题(注意我不允许在此代码中使用任何智能指针).我的印象是,如果我传递指向函数的指针并发生异常情况,那么如果在被调用函数或首次分配内存的函数中从未删除内存,则内存会泄露.删除catch块中的内存是否安全,还是应该删除调用函数中的内存?
例:
int main() {
object* myPtr = new object(); //dynamic memory on heap
foo(*myPtr); //pass pointer to function foo
return 0;
}
void foo(object &pointer) {
try {
/* do stuff here
with the pointer */
}
catch (const char &e) {
cout<< "An error occured: " << e << endl;
}
catch (...)
cout<< "Caught unknown exception." << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
函数返回后我应该删除指针吗?
int main() {
object* myPtr = new object(); //dynamic memory on heap
foo(*myPtr); //pass pointer to …
Run Code Online (Sandbox Code Playgroud)