C语言中为什么不能这样定义数组:int a[Length] (Length是变量)?

intmax,min;intL;printf("Howmanynumbersyouwanttooperat?\noperators:");//总共需要判断几个数?scan... int max, min;
int L;

printf("How many numbers you want to operat?\noperators:"); // 总共需要判断几个数?
scanf("%d", &L);
const int Length = L;

int a[Length];
我想根据用户的输入决定数组a的长度是多少,但是总是编译错误。

非得在程序开始#define Length ***,把Length变成一个常量,才可以在主函数中int a[Length]。

const int Length = 某个变量都不行。

这是为什么啊,定义数组时,[ ]里只能是一个常量吗?我又该如何实现根据用户的输入改变数组长度呢?
展开
 我来答
cipherf
2017-03-16 · TA获得超过4.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:67%
帮助的人:1.4亿
展开全部
C语言不支持这种方式。简短程序不如直接创一个够大的数组简便。
如果要动态数组,用malloc分配内存空间,然后定义一个指针指向,就是自行实现动态数组的方式。过后需要自己用free释放占用的内存否则会造成内存泄漏。

C++可以直接用指针指向new形成动态数组
int *p=new int[L];
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式