どのオブジェクトが破棄され、このコードにメモリ リークがあるかを特定する必要があります。
void myfunc()
{
Photo a(1, 2);
Photo* pt = new Photo(2, 3);
throw runtime_error("to test the exception");
}
私の答えは
オブジェクトは、クラス Photo のデストラクタを自動的に呼び出すことによって、関数 end の後で破棄されます。
メモリリークがあります。new 演算子で動的に割り当てられた pt は削除しませんでした。したがって、delete pt; を追加する必要があります。関数の終わりに。
私の答えは正しいですか?