Размер массива C ++, зависящий от параметра функции, вызывает ошибки компиляции

У меня есть простая функция, в которой массив объявляется с размером в зависимости от параметра, который является INT.

    void f(int n){
        char a[n];
    };

    int main() {
        return 0;
    }

Этот кусок кода прекрасно компилируется наGNU C ++, но не на MSVC 2005.

Я получаю следующие ошибки компиляции:

    .\main.cpp(4) : error C2057: expected constant expression
    .\main.cpp(4) : error C2466: cannot allocate an array of constant size 0
    .\main.cpp(4) : error C2133: 'a' : unknown size

Что я могу сделать, чтобы исправить это?

(Я заинтересован в том, чтобы сделать эту работу с MSVC, без использования new / delete)

Ответы на вопрос(7)

Ваш ответ на вопрос