Я использую С++ в течение нескольких лет, и сегодня я видел некоторый код, но как это может быть совершенно законным?
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 С++ Как программировать с. 261 в рамках общей ошибки программирования 4.5:
Только константы могут использоваться для объявления размера автоматических и статических массивов.
Просветите меня.