相关疑难解决方法(0)

依赖于函数参数的C++数组大小会导致编译错误

我有一个简单的函数,其中一个数组声明大小取决于参数int.

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

    int main() {
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

这段代码在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
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能纠正这个问题?

(我有兴趣使用MSVC,而不使用new/delete)

c++ arrays parameters declaration

18
推荐指数
3
解决办法
1万
查看次数

标签 统计

arrays ×1

c++ ×1

declaration ×1

parameters ×1