new演算子

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