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