在我们刚开始学数组这部分时,有时候未知数组长度,需要我们键盘输入我就举一个简单的列子
int n;
scanf("%d"&n);
int a[n];
这时我们可能会遇到这样一个问题,在某些较老的编译软件中是运行错误的,而有些是可以运行的
其实呢 在c语言里规定,a[] 中括号中的内容是必须是常量,或者相当于常量的东西。而n是变量,所以
会出现报错现象,但是呢,在以后较新的版本中,已近没有这么“严格”的要求了。不过我们还是要注意。
最正确的写法应该用用 malloc 申请动态分配,结束之后用free释放内存。
int n;
scanf("%d"&n);
int *a=(int*)malloc(sizeof(int)*n);
...
...
...
free(a);
这样写应该就没什么问题了。