C语言 定义数组

int main(void)
{
int i=4;
int test[i]={1,2,3,4};
return 0;
}
像这样编译不了,是不是定义数组时不能使用变量?
那要怎样做到用户输入一个数字,然后定义这个数量的数组?

不可以用变量指定自动数组的长度!


可以这样:

#define I (4)
int main(void)
{
 int test[I]={1,2,3,4};
 return 0;
}


或者这样:

#include <stdlib.h>
int main(void)
{
 int i=4;
 int *test;
 test=malloc(sizeof(int)*i);//生成一个长度为i的int型数组,i值可在运行过程中指定
 
 //do sth....
 free(test);//动态分配的空间在用毕之后应该用free()函数释放,否则会在程序结束之前一直占用造成内存泄漏。
 return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答