1. ホーム
  2. c++

[解決済み] new int(100)」は何をするものですか?

2022-03-05 10:12:48

質問

<ブロッククオート

重複している可能性があります。
これは変数か関数か

などと間違えて使ってしまいました。

int *arr = new int(100);

で、コンパイルは通るのですが、やっぱりこれは間違ってますね。本来は

int *arr = new int[100];

間違えて書いたのに、コンパイラは何だと思ってるんだ?

解決方法は?

最初の行では、1つの int に初期化し、それを 100 . を考えてみてください。 int(100) をコンストラクタ呼び出しとして使用します。

これはスカラアロケーションなので arr[1] を使用してメモリを解放するか delete[] は未定義の動作になります。