ガベージコレクションとは

勝手に解放してくれる、としか覚えてなかった。

プログラムが動的に確保したメモリ領域のうち、
不要になった領域を自動的に解放する機能

 

ヒープを利用する際、用済みになったデータ領域の解放を忘れて、
メモリ上に「ごみ」 ( いつまでたっても解放されない領域 ) が
残ってしまうことがある。
このような問題をモリー・リーク ( 回収漏れの意味 ) と呼ぶ。

逆に、
既に解放済みの領域を再度解放しようとして問題を起こすことがあり、
こちらは二重解放と呼ばれている。

ヒープの管理下を自動化する手法の一つに、
ガベージ・コレクション というものがある。
ガベージ・コレクションは、定期的「ごみ」になっている領域が
ないかどうかを調べ、見つけた「ごみ」を開放して回る処理を行う。

 

 

+α  C++/CLI

上と同じことだが一応メモ。

gcnew によって生成された参照クラスインスタンス
delete を用いて明示的に解放する必要はない

オブジェクトがコードから参照されなくなった時点で、
共通言語ランタイムによって削除される。
この時発生するオブジェクトの自動解放処理をガベージコレクションと呼ぶ。

 

標準 C++ ネイティブ型の場合、
new 演算子インスタンス化したオブジェクトは
delete 演算子解放する必要があった。

 

 

こちらから。
http://ufcpp.net/study/computer/MemoryManagement.html
http://www.wisdomsoft.jp/387.html

 

以上。