Я использую 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
?
Просто, чтобы проверить, у меня есть googled некоторые и все аналогичные коды для моего, как утверждается, дают ошибку размера хранилища.
Даже Deitel's C++ Как программировать с. 261 в рамках общей ошибки программирования 4.5:
Только константы могут использоваться для объявления размера автоматических и статических массивов.
Просветите меня.
отмечают, что DMA означает «прямой доступ к памяти» - Я думаю, что вы спрашиваете о динамическом распределении – 2009-04-10 10:32:14
C или C++? Выбери один_. –
Опять же, выберите один: C или C++. Этот вопрос явно и только о C; не должно быть тега C++. –