对于ANSI 标准C及C++,这都是标准没有定义的,也就是说,最好认为不可以用变量代入数组个数
C99标准中加入了这个特性,但C99标准还未流行。
对于C++编译器,gcc扩充了这个功能,但是它未被标准支持所以这样的程序是不具备编译可移植性的。早期的vc++6.0不支持此特性。
但是你若在c++中定义const int n = 5;
则可以int a[n];
因为c++中,const型变量是作为编译时常量的。
但在ANSI C中却不行,因为C中const型变量是作为只读的变量出现的,所以不能用其定义数组个数
虽然在汇编的角度看,int a[n];这种语句即使n是变量,也是很好实现的,但c/c++出于多种考虑(例如n的不确定性以及楼上提到的一点原因)拒绝了它
要模拟动态数组,最好使用new,malloc类似函数动态分配内存,这样的程序才是最安全的。
数组的引用下标可以是变量常量
追问我要的是解决方案,C语言中没有malloc 函数
追答C语言怎么没有malloc,使用时包含malloc.h