動的変数(new, delete)
new演算子で動的変数を生成できます。動的変数を使うと、プログラムで必要になった時に動的にメモリを確保することができます。(通常はスタック領域に確保されるメモリを、ヒープ領域に確保すると解釈。)
- 「new <型>;」でメモリを確保し、そのポインタを返す。
- 変数にはポインタを介してアクセスする。
- 確保した領域は、「delete <ポインタ>;」で開放する。
- メモリ不足で領域を確保できない場合、0が返される。
- マジか!
#include <iostream> // メイン関数 int main() { // 動的変数 int* i = new int; *i = 10; // 動的変数にした配列 int* array = new int[*i]; for ( int j = 0; j < *i; j++ ) { array[j] = j * 100; } std::cout << *i << std::endl; std::cout << array[5] << std::endl; // 変数を削除 delete i; delete [] array; // deleteの後に[]をつける。 return 0; }
実行結果です。
10 500