我需要确定哪些对象被销毁,以及此代码是否存在任何内存泄漏。
void myfunc()
{
Photo a(1, 2);
Photo* pt = new Photo(2, 3);
throw runtime_error("to test the exception");
}
我的回答是
对象在函数 end 后被销毁,通过自动调用 Photo 类的析构函数。
存在内存泄漏。我们没有删除使用 new 运算符动态分配的 pt。所以我们需要添加delete pt;在函数结束时。
我的回答正确吗?