这样定义一个数组行不行?该如何解决

这样定义一个数组行不行?intninta[n]呵呵,肯定是有问题的,但是什么问题呢? [解决办法]7.15.数组的大小可

这样定义一个数组行不行?
int   n;
int   a[n];
呵呵,肯定是有问题的,但是什么问题呢?


[解决办法]
7.15.数组的大小可以在程序运行时定义吗?

不。在数组的定义中,数组的大小必须是编译时可知的,不能是在程序运行时才可知的。
例如,假设i是一个变量,你就不能用i去定义一个数组的大小: char array[i]; /*(notvalidc */ 有些语言支持这种定义,但C语言不支持。如果C语言支持这种定义,栈就会变得更复杂,调用函数的开销就会更大,而程序的运行速度就会明显变慢。

如果数组的大小在编译时是可知的,即使它是一个非常复杂的表达式,只要它在编译时能被计算出来,你就可以定义它。 如果你要使用一个在程序运行时才知道其大小的数组,你可以说明一个指针,并且调用malloc()或calloc()函数从堆中为这个数组分配内存空间。

看看这篇文章吧:http://www.haobaidu.info/html/ask-answer/language/C-C++/200701/10268.html