LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

В смысле так?:

int main() {
    int i;
    cin >> i;
    int a[i];   
}

Если что, это не стандартный код C++. Gcc и Clang его скомпилируют. А вот MSVC даст ошибку. Это называется VLA - Variable-length array и это расширение компилятора (https://ru.stackoverflow.com/questions/814027/Зачем-нужны-динамические-массивы-в-c).

Это конечно удобно, но я бы таким не пользовался, чтобы не входило в привычку и потом случайно не написать такое в коммерческом кроссплатформенном проекте и через некоторое время обнаружить, что под определенным компилятором это не компилируется.

Исправление rumgot, :

В смысле так?:

int main() {
    int i;
    cin >> i;
    int a[i];   
}

Если что, это не стандартный код C++. Gcc и Clang его скомпилируют. А вот MSVC даст ошибку. Это называется VLA - Variable-length array и это расширение компилятора (https://ru.stackoverflow.com/questions/814027/Зачем-нужны-динамические-массивы-в-c).

Исправление rumgot, :

В смысле так?:

int main() {
    int i;
    cin >> i;
    int a[i];
    
}

Если что, это не стандартный код C++. Gcc и Clang его скомпилируют. А вот MSVC даст ошибку. Это называется VLA - Variable-length array и это расширение компилятора (https://ru.stackoverflow.com/questions/814027/Зачем-нужны-динамические-массивы-в-c).

Исходная версия rumgot, :

В смысле так?:

int main() {
    int i;
    cin >> i;
    int a[i];
    
}

Если что, это не стандартный код C++. Gcc и Clang его скомпилируют. А вот MSVC даст ошибку. Это называется VLA - Variable-length array и это расширение компилятора (https://ru.stackoverflow.com/questions/814027/%d0%97%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d1%8b-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2%d1%8b-%d0%b2-c).