たまに、どれだけのサイズを確保したらいいのか動作させるまで、わからない場合がある
そんなときは変数サイズを動作時に確保してしまえばよいということである。
わかりやすい例が下記のコード
size_t size{0}; double tmp_ptr {nullptr}; //ユーザーに変数サイズを入力させる cout << "input the size of variable" << endl; cin >> size; //heapから入力されたサイズ分(double型)の領域を確保する tmp_ptr = new double[size]; //heapに確保されたアドレスが表示される cout << tmp_ptr << endl; //メモリ解放 delete [] tmp_ptr;
上記例は変数に何個要素があるのかわからない場合に役立つ。
普通に宣言した型分だけ必要な場合はもう少しシンプルで
int sample{0}; int *int_ptr {nullptr}; //heapからint型の変数領域の確保 int_ptr = new int; *int_ptr = 100l //メモリ解放 delete int_ptr;
なんかnewってやつ見るとオブジェクト思考の何かに勘違いしてた。
とりあえず、new
とdelete
が重要かな。
mallocとか使いたくないですね、、、