visual studio 中的 C++ 错误

C++ error in visual studio

我在 CodeBlocks 中用 C++ 构建程序,运行 很好。后来我试过MS Visual Studio,它给了我一个错误信息。我不太确定这是不是我的错误,CodeBlocks 只是没有像 VS 那样识别它,还是由不同的编译器引起的假错误。

代码如下:

#include <iostream>
#include <string>
#include <sstream>


using namespace std;



int main(){

    string widthin;
    int width, height;

    cout << "Enter the size of the puzzle (WIDTH HEIGHT) : " << endl;
    getline(cin, widthin);
    stringstream(widthin) >> width >> height;
    if (width == 0 || height == 0 || width >= 10000 || height >= 10000){
        cout << "Value cannot be a zero nor can it be a letter or a number higher than 10000!" << endl;

        return main();
    }

    cout << width << " x " << height << endl << endl;

    const int plotas = width*height;
    int p;

    bool board[2][plotas];

错误出现在最后一行(布尔数组)。它是这样说的: error C2057: 需要常量表达式; 错误 C2466:无法分配常量大小为 0 的数组;

VLA(可变长度数组)不是标准的 C++。

一些编译器允许将它们作为语言扩展,但它们并不受欢迎。我建议您采用惯用的方法并改用 std::vector