私は数年前からC++を使用していましたが、今日はいくつかのコードを見ましたが、どうすれば完全に合法的になりますか?動的割り当てのない実行時の配列サイズは許されますか?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
GCCでコンパイルされています。
実行時にサイズを決定するには、new
またはmalloc
を使用しないでください。
ダブルチェックでは、私はいくつかのグーグルと同様のすべてのコードは、ストレージサイズのエラーを与えると主張されています。
Even Deitel's C++ How To Program p。共通プログラミングエラー4.5以下の261状態:
自動および静的配列のサイズを宣言するために定数のみを使用できます。
私を怒らせる。
ノートDMAは、「ダイレクトメモリアクセス」を意味する - 私はあなたが動的割り当て –
CまたはC++について尋ねていると思いますか?一つを選ぶ_。 –
もう一度、CまたはC++を選択します。この質問は明示的であり、Cについてのみです。 C++タグはありません。 –