Unity_Lesson

値型・参照型





スタック・ヒープ

スタック(Stack)ヒープ(Heap) は、プログラムがメモリを管理する際に使用される領域の2つの異なる方法です。
それぞれの特徴と役割を解説します。


1. スタック(Stack)

スタックは、 LIFO(Last In, First Out) 方式でメモリを管理する領域です。主に関数のローカル変数や、メソッド呼び出し時の情報(戻り先アドレスやパラメータなど)を保存します。

特徴:

使用例:

イメージ:

関数が呼び出されるごとに、その関数で使用される変数や情報がスタックに積み上げられ、
関数が終了するとそれらが一気に取り除かれる(解放される)。


2. ヒープ(Heap)

ヒープ は、動的にメモリを確保するための領域です。必要に応じてプログラムの実行中に自由にメモリを確保(動的割り当て)し、使い終わったら明示的に解放する必要があります。

特徴:

使用例:

イメージ:

ヒープに割り当てたメモリは、プログラムがその領域を指すポインタを保持し、
明示的にメモリを解放するまでそのまま残る。

スタックとヒープの違い

まとめ