这个C++代码是如何在GCC中运行而不是在Visual C++中运行的?

Tam*_*jee 2 c++ arrays gcc

#include<iostream>
using namespace std;
main()
{
  int m;
  cin>>m;
  int re[m];
  cout<<sizeof(re);
} 
Run Code Online (Sandbox Code Playgroud)

这段代码在代码GNU C++ 4.7中运行得很好(但不是在我的Microsoft Visual C++中).但为什么?数组大小不应该是常数吗?

lol*_*ndo 5

如前所述,C++数组大小必须是常量表达式.
- 使用VS,您将获得: error C2057: expected constant expression
- GCC具有标准的扩展,允许您的代码进行编译.