C语言有关数组的一个小问题

我的目的是创建一个数组,这个数组的大小由用户输入的一个值确定,但是会出现错误,请告诉我为什么会错,谢谢~
我写的:

报错:

把int number[counter]一句改成
int *number=(int *)malloc(counter*sizeof(int));
试试。前面要加#incoude "stdlib.h"。最后要加free(number);。追问

还是不可以,我不知道自己改的对不对。

报错:

改过的:

追答

有什么问题?在我这里没有问题。照这个试一下……


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-28
因为C语言的数组长度定义 要求编译时就确定下来,所以不能用变量定义数组长度,
你可以改成 int number[123];
第2个回答  2013-09-28
不能这个配置吧。

scanf("%d",&couner);
int* number=(int*)malloc(counter*sizeof(int));

记得使用完毕要 free(number);
第3个回答  2013-09-28
C语言不支持变长数组,数组的长度只能是常量。
第4个回答  2013-09-28
因为这个编译器不支持追问

那该怎么写,编译器才支持呢?

追答

换gcc的编译器,或者clang。要不然就用

scanf("%d",&counter);
int* number=malloc(counter*sizeof(int));
。。。
free(number);

这样的写法

相似回答