相关疑难解决方法(0)

RAII和C++中的智能指针

在使用C++的实践中,什么是RAII,什么是智能指针,如何在程序中实现这些以及将RAII与智能指针一起使用有什么好处?

c++ smart-pointers raii

189
推荐指数
4
解决办法
6万
查看次数

如何在try-catch块中释放内存?

我希望有一个简单的问题 - 当异常发生时,如何在try块中分配一个空闲内存?请考虑以下代码:

try
 {
  char *heap = new char [50];
        //let exception occur here
  delete[] heap;
 }
 catch (...)
 {
  cout << "Error, leaving function now";
  //delete[] heap; doesn't work of course, heap is unknown to compiler
  return 1;
 }
Run Code Online (Sandbox Code Playgroud)

如何在分配堆之后释放内存并在调用之前发生异常delete[] heap?在这些try .. catch块中是否有规则不在堆上分配内存?

c++ try-catch delete-operator

24
推荐指数
4
解决办法
1万
查看次数

标签 统计

c++ ×2

delete-operator ×1

raii ×1

smart-pointers ×1

try-catch ×1