Создание массива в функции на стеке с разным размером
void foo(int b)
{
static int a = 10;
a += b; // or a = b
int mass[a];
for (int i = 0; i < a; i++) mass[i] = i;
for (int i = 0; i < a; i++) std::cout << mass[i] << std::endl;
std::cout << "foo" << std::endl;
}
int main() {
std::string count;
// 1
std::cout << "Enter a size of array: " << std::endl;
std::cin >> count;
foo(std::stoi(count));
// 2
std::cout << "Enter a size of array: " << std::endl;
std::cin >> count;
foo(std::stoi(count));
return 0;
}
Не совсем понимаю почему это работает. Ведь для создания массива на стеке assembler заранее должен знать какой размер у этого массива будет. Тут же значение массива не известно, пока его не введет пользователь.
Добрые жители StackOverflow, прошу объясните мне..