3

例えば:

for (i=0;i<10;i++)
{
   myclass = new myclass();
   // do stuff with myclass
}

質問:

  1. この場合、10回の割り当てを実行して割り当てられたすべてのメモリを取得するにはどうすればよいですか?
  2. 実行終了時のメモリフットプリントはどうなりますか?
  3. C++ の削除機能を使用すると、これをより細かく制御できますが、この場合、2 回目の反復では、myclass は単純に新しい割り当てを取得して移動しますか?
4

1 に答える 1

7

次の反復*の後、各新しいオブジェクトへの参照がなくなるため、それらはガベージ コレクションの対象となります。しかし、前述のガベージ コレクションがいつ行われるかわからないため、メモリ フットプリントが最終的にどうなるかについての直接的な答えはありません。

詳細については、 MSDN: ガベージ コレクションを参照してください。

* コンストラクターがオブジェクトへの参照をどこかに追加しない限り、オブジェクトは固執します。

于 2012-12-18T01:50:41.630 に答える