• ベストアンサー

C++ newについて

お世話になっております。C++初心者です。 newについて質問です。 newして動的にメモリを確保したものはdeleteにて解放処理を 行わないとメモリリークしてしまうのはわかっているのですが、 newした動的メモリに再度newをするとどうなるのでしょうか? また、複数回deleteもせずにnewし続けたあとに deleteをした場合はすべて解放されるのでしょうか? 少し気になったので質問してしまいました。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BearCave
  • ベストアンサー率20% (189/909)
回答No.1

>newした動的メモリに再度newをするとどうなるのでしょうか? この質問の意味が読み取れませんでしたが、こういう事でしょうか? Hoge* myHoge = new Hoge(); //Hogeクラスをnewして「myHoge」ポインターに格納 myHoge = new Hoge(); //再度、Hogeクラスをnewして「myHoge」ポインターに上書き newする度に新たなメモリ空間が確保されるので、メモリには2つのHogeオブジェクトが存在することになります。でも「myHoge」ポインターが指しているのは2つ目のオブジェクトだけです。この後「delete myHoge;」としても、2つ目のオブジェクトしか解放されないので、メモリリークが起きます。 質問の意味を取り違えていましたら補足お願いします。

fcknsho
質問者

お礼

すいません、言葉足らずでしたね。 BearCaveさんが御説明して頂いた内容が 私の知りたかった内容です。 2重deleteの説明は結構多いのに、 2重newの説明をしているところがなかなか 見当たらなかったので質問しました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A