数组的长度必须事先进行指定,且只能是常整数,不能够是变量
例如
- int a[5]; //这是正确的
- int len;
- int a[len]; //这是错误的。传统的数组不能够是变量
传统形式定义的数组。该数组在内存中的空间,程序员无法手动进行释放。在一个函数运行期间,系统为该函数中数组分配的空间会一直存在,直到该函数运行结束时,该数组的空间才会被系 统释放。
例如
- #include
- void f(void)
- {
- int a[4]={1,2,3,4};
- return;
- }
- int main(void)
- {
- f();
- return 0;
- }
-
- //数组 a 在内存中的空间会一直存在 ,直到函数 f 执行完成,系统才会释放内存中数组的空间。
数组的长度一旦定义就不能够进行更改
数组的长度不能在函数的运行过程中,动态的扩充或者缩小
A函数定义的数组,在A函数运行期间可以被其他函数进行使用。在A函数终止后,A函数中的数组就不能够被其他函数进行使用
例如:
- #include
- void g(int* parr,int len)
- {
- parr[3]=88;
- }
- void f(void)
- {
- int a[4]={1,2,3,4};
- g(a,4);
- printf("a[3]=%d\n",a[3]);
- }
- int main(void)
- {
- f();
- return 0;
- }
-
- /*
- 上面程序就说明了,一旦 f 函数终止了,g 函数中调用的 f 函数中数组 a 就会失败,
- */
总结一下就是:
传统函数定义的数组不能够跨函数使用。
动态数组很好的解决了传统数据的缺陷。
传统数组也叫静态数组。
1. 首先我们来讲讲malloc函数
malloc函数是 memory(内存) allocate(分配)的缩写。也就是内存分配函数。
举个例子
#include