此代碼是否會導致內存泄漏?如果構造函數拋出`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