由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问C++ exception后如何清理function stack上的内存资源?
相关主题
C++ 的 exception handling3 c++ challenge-and-grill questions
请教一下,exception时,destructor一定会被调用么?A try-catch problem in C++
几个问题问个线程同步的问题
有大侠讲讲RTTI和exception的问题么?Can we define pure virtual function? (转载)
关于内存泄漏请教个Bloomberg 的 C++ 题目
一个Quant Developer的C++面试题[C++] when destructors get called
Two questions about handling exceptions in C++【C++】请问这样有没有memory leak?多谢
问一个private destructor的问题弱问一下
相关话题的讨论汇总
话题: c++话题: 内存话题: exception话题: 资源话题: stack
进入Programming版参与讨论
1 (共1页)
i***h
发帖数: 12655
1
比如 A() 调用 B() 调用 C(), 结果C()里new 错了,
A() 和 B() 里alloc的内存怎么办?
今天被问倒了...
m******n
发帖数: 155
2
如果是stack上的内存,不需要清理。
如果是heap上的,分配内存的时候就应该依照RAII的原则,或者用现成的smart
pointer。没这么做的话内存就漏了。

【在 i***h 的大作中提到】
: 比如 A() 调用 B() 调用 C(), 结果C()里new 错了,
: A() 和 B() 里alloc的内存怎么办?
: 今天被问倒了...

O*******d
发帖数: 20343
3
C++ exception的处理需要仔细。 所有占用的资源都需要释放。 如果你要用new,最好
用std::auto_ptr, 一旦有exception,资源就被自动释放。 如果在多线程里需要锁定
一段执行,在Windows里可以用CSingleLock, 可以自动解锁。 其它占用资源的,例如
socket,file handle,可以写一个class,把释放资源的程序写在destructor里。 使
用时造一个instance,其余就是自动的了。
1 (共1页)
进入Programming版参与讨论
相关主题
弱问一下关于内存泄漏
子类的destructor被调用时,什么时候调用基类的destructor一个Quant Developer的C++面试题
Destructor 被调用几次?Two questions about handling exceptions in C++
new一定要和delete配对吗?问一个private destructor的问题
C++ 的 exception handling3 c++ challenge-and-grill questions
请教一下,exception时,destructor一定会被调用么?A try-catch problem in C++
几个问题问个线程同步的问题
有大侠讲讲RTTI和exception的问题么?Can we define pure virtual function? (转载)
相关话题的讨论汇总
话题: c++话题: 内存话题: exception话题: 资源话题: stack