C言語では、動的配列などのメモリを確保、解放するときは、malloc、freeというC標準ライブラリを使用していた・・・。
C++では、new演算子によってメモリの確保、delete演算子によってメモリの解放を行う・・・。
ここでは、C言語のmallocの頁で作ったmallocによる動的配列のプログラムをnewで作ってみる・・・。
今回は動的配列の要素数もcount_ptrというポインタにしている・・・。
これも動的変数へのポインタということでnew演算子でメモリを確保しポインタを格納できる・・・。
さっそく、count_ptrにint型のメモリを割り当てる・・・。
<動的変数へのポインタ> = new <動的変数の型>;
なので、
そして、入力された要素数をcount_ptrの指す領域に格納する・・・。
count_ptr分の動的配列を作成・・・。
<動的配列へのポインタ> = new <動的配列の要素型>[要素数];
なので、
各要素に値を入力・・・。
各要素を出力・・・。
int_arrayのようなnewで確保した動的配列は、
delete [] <動的配列へのポインタ>;
で解放する・・・。
count_ptrのようなnewで確保した動的変数は、
delete <動的変数へのポインタ>;
で解放する・・・。
実行すると、
$ ./new_operator count: 5 int_array[0]: 3 int_array[1]: 2 int_array[2]: 4 int_array[3]: 5 int_array[4]: 6 int_array[0] = 3 int_array[1] = 2 int_array[2] = 4 int_array[3] = 5 int_array[4] = 6
Sample/new_operator.cpp at master · bg1bgst333/Sample · GitHub