0

重複の可能性:
「new」を使用するとメモリリークが発生するのはなぜですか?

私は、

Foo bar = *(new Foo());

または、値を に割り当てた後にヒープからデータを削除できないため、メモリを浪費していますbar

4

2 に答える 2

1

ヒープ上でそれへの参照が失われるため、これは瞬時のメモリ リークです。

ただし、スタックでコンストラクターを呼び出すだけでよいのに、なぜ自分で作業を追加したいのでしょうか。

于 2012-09-18T05:32:51.757 に答える
1

これは、予想とは異なる動作をします。

  1. 決して破棄されないヒープに一時的に作成する=メモリリーク

  2. 次に、スタックに一時オブジェクトの COPY を作成します。

したがって、このアプローチでは何も得られません..おそらくそこにスマートポインターが必要ですか?

于 2012-09-18T05:34:38.523 に答える