小编mil*_*271的帖子

何时删除try-catch块中的指针

快速最佳实践问题(注意我不允许在此代码中使用任何智能指针).我的印象是,如果我传递指向函数的指针并发生异常情况,那么如果在被调用函数或首次分配内存的函数中从未删除内存,则内存会泄露.删除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)

c++ memory pointers try-catch

-1
推荐指数
1
解决办法
981
查看次数

标签 统计

c++ ×1

memory ×1

pointers ×1

try-catch ×1