C语言里面 数组都要事先定义长度吗 ?知道
1个回答
展开全部
在数组一章中,曾介绍过数组的长度是预先定义好的,
在整个程序中固定不变。C语言中不允许动态数组类型。例如:
int
n;scanf("%d",&n);int
a[n];
用变量表示长度,想对数组的大小作动态说明,
这是错误的。但是在实际的编程中,往往会发生这种情况,
即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,
用数组的办法很难解决。为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间,
也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。
其它文献中所提到的"动态数组",指的就是利用内存的申请和释放函数,在程序的运行过程中,根据实际需要指定数组的大小.其本质是一个指向数组的指针变量.常用的内存管理函数有以下三个:
1.分配内存空间函数malloc
2.分配内存空间函数
calloc
3.释放内存空间函数free
在整个程序中固定不变。C语言中不允许动态数组类型。例如:
int
n;scanf("%d",&n);int
a[n];
用变量表示长度,想对数组的大小作动态说明,
这是错误的。但是在实际的编程中,往往会发生这种情况,
即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,
用数组的办法很难解决。为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间,
也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。
其它文献中所提到的"动态数组",指的就是利用内存的申请和释放函数,在程序的运行过程中,根据实际需要指定数组的大小.其本质是一个指向数组的指针变量.常用的内存管理函数有以下三个:
1.分配内存空间函数malloc
2.分配内存空间函数
calloc
3.释放内存空间函数free
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询