1、ヒープ(ヒープ)、動的に割り当てられたメモリ領域、割り当ては手がリリースされる後(新、削除、malloc関数、無料)
このようにして、メモリを割り当てるために空きメモリを必要とするので、メモリリーク、またはメモリの断片化の問題を引き起こす可能性があります。
図2に示すように、スタック(スタック)、関数呼び出しは、ローカル変数と呼ばれるデータ領域を生成し
配布、リリースシンプルなだけにポインタを移動し、LIFO、メモリの断片化は発生しません。このように割り当て、スタック上のより適切な。
しかし、時には、オブジェクトがまたは大規模なオブジェクトを含め、スタックに配置すべきではないことはできません、オブジェクトのサイズはコンパイル時に決定することができない、オブジェクトは、関数の戻り値ですが、原因特別な理由のために、あなたは、オブジェクトの値が返されます使用しないでください。
図3に示すように、RAII、C ++特有のリソース管理は、スタックとデストラクタを使用することによって達成しました。そして、メモリをクリーンアップするだけでなく、ファイルを閉じる含めるように限定されるものではなく、同期ロックは、他の重要なシステムリソースの解放を発表しています
4、スタックの巻き戻し
異常が発生した場合、デストラクタを呼び出します
5、どのようにスタックに割り当てやヒープ上に割り当てを検討します
ここで、現在の機能を超えてライフサイクル、一般的に必要ヒープ(又はオブジェクトの運動伝達を使用して)。スタックとの関係では逆に、現在の関数内のライフサイクル、オン