C ++ - Arraygröße abhängig vom Funktionsparameter verursacht Kompilierungsfehler

Ich habe eine einfache Funktion, in der ein Array in Abhängigkeit vom Parameter int mit size deklariert wird.

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

    int main() {
        return 0;
    }

Dieses Stück Code kompiliert gut aufGNU C ++, aber nicht bei MSVC 2005.

Ich erhalte die folgenden Kompilierungsfehler:

    .\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

Was kann ich tun, um das zu korrigieren?

(Ich möchte, dass dies mit MSVC funktioniert, ohne new / delete zu verwenden.)

Antworten auf die Frage(14)

Ihre Antwort auf die Frage