读书人

在不同编译器中运行声明数组有的报错

发布时间: 2012-03-09 21:42:52 作者: rapoo

在不同编译器中运行,声明数组有的报错,为什么?


C/C++ code
void MergeSort2(int a[], int n){    int b[n];   Msort(a, b, 0, n-1);} 


在VS2005中错误:
1>g:\数据结构程序\dsexpseven\dsexpseven\dsexpseven.cpp(220) : error C2057: 应输入常量表达式
1>g:\数据结构程序\dsexpseven\dsexpseven\dsexpseven.cpp(220) : error C2466: 不能分配常量大小为 0 的数组
1>g:\数据结构程序\dsexpseven\dsexpseven\dsexpseven.cpp(220) : error C2133: “b”: 未知的大小
而在MinGW没有这个错误!
这是为什么啊!

[解决办法]
int b[n];
是C99才支持的语法。C++标准仍然是不支持的。
mingw是gcc编译器,它扩展支持C99.
不要用这个语法。

读书人网 >C++

热点推荐