VLA
Скажу сразу, очень многие даже не знают о таком термине.
VLA - это попытка упросить жизнь программисту, что бы он мог создавать массивы "интуитивным способом" (я специально взял в кавычки). Поддерживается не всеми компиляторами.
Когда мы пишем int a[x];
некоторые компиляторы могут это компилировать, даже если x
только что введённая переменная. Создание происходит НЕ В КУЧЕ а на СТЕКЕ с использованием обычного alloca
как создание обычного массива через указатели и new
. Работает примерно также, но прячет все детали за "магией"компилятора. (грубо говоря на стеке рядом хранит данные что он создал VLA на определённое количество элементов)
При наличии
std::vector
смысла вVLA
для С++ нет никакого.