動的メモリ割り当てと静的メモリ割り当てについて読んでいたところ、動的メモリ割り当てについて次のことがわかりました。
前の章で見たプログラムでは、必要な変数を定義することによって、プログラムの実行前にすべてのメモリーの必要性が決定されていました。ただし、プログラムのメモリ ニーズは実行時にしか判断できない場合があります。たとえば、必要なメモリがユーザー入力に依存する場合です。
そこで、C++ で次のプログラムを作成しました。
#include <iostream>
int main()
{
int n = 0;
int i = 0;
std::cout << "Enter size: ";
std::cin >> n;
int vector[n];
for (i=0; i<n; i++)
{
vector[i] = i;
}
return 0;
}
このプログラムは機能します。仕組みがわかりません。こちらのサイズはいつ決まりますか?この場合、ベクトルはどのように割り当てられますか?