【发布时间】:2013-02-02 21:15:57
【问题描述】:
我在 C 语言中有一些小错误:
错误:表达式必须有一个常数值
我知道,这意味着我的限制必须有一个恒定值,但是当我遇到这种情况时,我该如何解决呢?
printf("Type limit: ");
scanf("%i",&limit);
int arr[limit];
谢谢。
编辑:
好的,伙计们,另一个问题,如果我是垃圾邮件,对不起。
int num,limit,i;
printf("Type limit: ");
scanf("%i",&limit);
int *arr = (int*)malloc(limit*sizeof(int));
for(i=0;i<limit;i++)
{
printf("Type num %i: ",i);
arr[i] = scanf("%i",&num);
}
system("pause");
return 0;
错误4错误c2109下标需要数组或指针类型
【问题讨论】:
-
你需要使用
malloc,因为limit在编译时是未知的(或者进入VLA领域)。 -
编译为 C99 或 C2011。可变长度数组不在 C89 中。
-
下次不要发布问题的编辑作为答案,只需使用编辑功能。现在检查我的答案。
标签: c arrays scanf variable-length-array