さまざまなサイズの配列宣言に関するクイズに遭遇しました。最初に頭に浮かんだのは、new
次のように、コマンドで動的割り当てを使用する必要があるということです。
while(T--) {
int N;
cin >> N;
int *array = new int[N];
// Do something with 'array'
delete[] array;
}
ただし、解決策の1つが次のケースを許可することを確認しました。
while(T--) {
int N;
cin >> N;
int array[N];
// Do something with 'array'
}
少し調べた後、g ++でこれが可能であることを読みましたが、それでも、動的割り当てを使用する必要があるのはどのような場合ですか?それとも、コンパイラがこれを動的割り当てとして変換するのでしょうか?
削除機能が含まれています。ただし、ここでの質問はメモリリークに関するものではないことに注意してください。
new OBJ
直接呼び出すことでオブジェクトを割り当てることは依然として一般的な方法です。
std::vector
代わりに(std::vector<int> array(N);
)を使用してください。