首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-09 
在不同编译器中运行,声明数组有的报错,为什么?C/C++ codevoid MergeSort2(int a[], int n){int b[n]Msort

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


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.
不要用这个语法。

热点排行