使用 MinGW64 时不会抛出错误 C2057

error C2057 is not thrown when using MinGW64

我基本上有以下几行代码

void func1(size_t sz1)
{
    double arr[sz1];
}

当我使用 Microsoft Visual C++ 2019 (C) 编译器时,抛出错误 C2057。当我使用 MinGW64 编译器 (C) 时,我没有收到错误并且代码按预期工作。 MinGW64 编译器是否自动使用 mallaoc 或为什么我也没有收到此编译器的错误消息?此外,使用上面的代码行而不是 malloc?

时,我是否会遇到任何麻烦?

好吧,看看 c++ array - expression must have a constant value,g++ 似乎有这个功能(很可能 mingw 也使用这个)。似乎编译器会在后台进行分配,但问题是您的代码无法跨编译器移植。