2

どのオブジェクトが破棄され、このコードにメモリ リークがあるかを特定する必要があります。

  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; を追加する必要があります。関数の終わりに。

私の答えは正しいですか?

4

1 に答える 1