Хорошо известно, что статические массивы хранят свои значения в стеке, и их размер должен быть известен во время компиляции. Это ограничение означает, что если вы хотите, чтобы размер массива определялся пользователем, вы не можете использовать статический массив. Но приведенные ниже коды можно успешно скомпилировать. Есть ли разумное объяснение?
Код: Выделить всё
size_t size = 0;
cin >> size;
int arr[size] = {};
Был ли известен размер статического массива, указанного выше, во время выполнения?
Я написал приведенный выше код на C++20 в CLion, и он скомпилировался успешно. Какова причина, которая вызывает это?
Подробнее здесь:
https://stackoverflow.com/questions/793 ... t-run-time