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

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

报错:
展开
 我来答
White_MouseYBZ
2013-09-28 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6705万
展开全部
把int number[counter]一句改成
int *number=(int *)malloc(counter*sizeof(int));
试试。前面要加#incoude "stdlib.h"。最后要加free(number);。
追问

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

报错:

改过的:

追答

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


youbl
2013-09-28 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1677万
展开全部
因为C语言的数组长度定义 要求编译时就确定下来,所以不能用变量定义数组长度,
你可以改成 int number[123];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
df601562566
2013-09-28 · TA获得超过502个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:342万
展开全部
不能这个配置吧。

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

记得使用完毕要 free(number);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青衣风雨
2013-09-28 · TA获得超过419个赞
知道小有建树答主
回答量:244
采纳率:80%
帮助的人:136万
展开全部
C语言不支持变长数组,数组的长度只能是常量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-28
展开全部
因为这个编译器不支持
追问
那该怎么写,编译器才支持呢?
追答

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

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

这样的写法

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式