此代码是否会导致内存泄漏?如果构造函数抛出`new`分配的内存会发生什么?
#include <stdexept>
class MyClass
{
public:
MyClass()
{
throw std::runtime_error("Test");
}
};
int main()
{
try
{
MyClass * myClass = new MyClass;
}
catch (const std::exception & exc)
{
// Memory leak?
}
return 0;
}
由new
分配的内存不会被删除。这是内部照顾,还是实际的内存泄漏?
+1对于使用Valgrind实际尝试它。 – DarkDust 2010-11-04 08:59:40