回答編集履歴
1
一部間違った文を直しました。
answer
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
int function(int x){
|
|
15
15
|
int *y_malloc = (int*)(malloc(sizeof(int) * x));//C言語の時代に使われたもので、malloc関数は引数の値だけ領域を確保します。intのバイト数と合わせるためにsizeof(int)をかけています。
|
|
16
16
|
int *y_new = new int[x];//newというのはc++にできた構文で、上のmallocに置き換えるとわかるとおもいます。
|
|
17
|
-
std::unique_ptr<int> y_smart(int[x]);//上のnewを、delete(下記参照)しなくてもいいようにしたものです。このように、deleteする手間を省いてくれるのをスマートポインタと呼び、他にも数種類あります。
|
|
17
|
+
std::unique_ptr<int> y_smart(new int[x]);//上のnewを、delete(下記参照)しなくてもいいようにしたものです。このように、deleteする手間を省いてくれるのをスマートポインタと呼び、他にも数種類あります。
|
|
18
18
|
std::vector<int> y_vector(x);//自動でdeleteしてくれる上に、後から簡単に容量を変えたりできます。
|
|
19
19
|
//do something
|
|
20
20
|
free(y_malloc);//mallocで確保した領域は、free関数で開放しなければなりません。
|