考えるIループを複数回関数fooの実行を解放するための変数を破壊します。私が関数Fooの外側で "b"を移動したくないと仮定した場合、後続の "b"初期化によって要求されるメモリを解放しなければならないのですか、それとも自動的に行われますか?C#のメモリ
Q
C#のメモリ
0
A
答えて
3
これらは整数であり、スタックに格納できますが、この場合はそうではありません。変数が有効範囲外になるとすぐにスタックメモリを管理する必要はなく、スタックからポップされてメモリが解放されます。また、管理されたオブジェクトを(適切に)使用したときに.netで手動でメモリを管理することについてめったに心配する必要はありません。
これらの値が実際にスタックに格納されているかどうかについては、this answer by Marc Gravellを参照してください。また、その回答で指摘されているように、Eric Lippert a well written article(2009年以降はあまり変更されていません)。マルクGravellの答えから
彼らは時々ですが、ないよう:クラスの
- フィールド反復子ブロックで
- 捕獲変数
- 変数を
関連する問題
- 1. C++メモリのトラブルシューティング
- 2. C++メモリ内のプログラムサイズ
- 3. メモリへのC++ストリーム
- 4. ネイティブC++のdll /メモリ
- 5. C#メモリ管理
- 6. メモリ解放C++
- 7. C - メモリが
- 8. Objective-Cのメモリの詳細
- 9. Cのメンバ配列のメモリ
- 10. C#のメモリ/オブジェクトの理解
- 11. C++メモリ管理リファレンス
- 12. C++クラスとオブジェクト - メモリ
- 13. C++ malloc():メモリ破損
- 14. メモリ管理Confusion C++
- 15. C++クラッシュの共有メモリ
- 16. Objective-Cのメモリ不足
- 17. C#メモリの壊れたエラー
- 18. Cメモリ共有の問題
- 19. Objective-C/iPhoneのメモリ管理
- 20. メモリの割り当て(C)
- 21. ValgrindはC++のメモリは、
- 22. C++でのメモリ測定
- 23. C#System.Buffer.BlockCopyメモリの問題?
- 24. JavaとC++の共有メモリ
- 25. objective-cオブジェクトのメモリ管理
- 26. C#メモリの編集ブール値
- 27. C++のmmapメモリにファイルし、そのメモリに
- 28. C#メモリ不足例外 - イメージタイプ
- 29. C++:右辺参照メモリ
- 30. C - Mallocとmemcpy(メモリ管理)
bがスタックに作成されます。あなたがそれを返すとすぐにそれは消えます。 –
@MatthewWhited「b」は必ずしもスタック上に作成されません。 https://blogs.msdn.microsoft.com/ericlippert/2009/04/27/the-stack-is-an-implementation-detail-part-one/ –
この種の変数を_manage_する必要があると思ったら[Value vs Reference Types](http://www.albahari.com/valuevsreftypes.aspx)を読み、[heap and stack]の違いを理解することをお勧めします(http://stackoverflow.com/questions/79923/what-スタックアンドヒープの場合) – Steve