数组定义的维数类型限制(z)

 

代码1
const int size = 9;
char c[size];

1.VS2005 编译为 C 代码(/TC)
编译不通过
错误 1 error C2057: expected constant expression
错误 2 error C2466: cannot allocate an array of constant size 0
错误 3 error C2133: 'c' : unknown size

2.VS2005 编译为 C++ 代码(/TP)
编译通过

3.Cygwin gcc/g++
编译通过

================================================
代码2
int temp = 9;
const int size = temp;
char c[size];


1.VS2005 编译为 C 代码(/TC)
编译不通过
错误 1 error C2057: expected constant expression
错误 2 error C2466: cannot allocate an array of constant size 0
错误 3 error C2133: 'c' : unknown size

2.VS2005 编译为 C++ 代码(/TP)
编译不通过
错误 1 error C2057: expected constant expression
错误 2 error C2466: cannot allocate an array of constant size 0
错误 3 error C2133: 'c' : unknown size


3.Cygwin gcc/g++
编译通过

================================================
代码3
int size;
scanf("%d", &size);
char c[size];

1.Cygwin gcc/g++
编译通过
但不能对数组初始化。

2.VS2005
编译不通过

原文地址:https://www.cnblogs.com/bigbigtree/p/2709843.html