C语言 郝斌
动态内存分配【重点难点】
传统数组的缺点:
1.数组长度必先事先预定,且只能是常整数,不能是变量
例子:
int a[5]; //ok
int len = 5; int a[len];//error
2.传统形式定义的数组,该数组的内存程序员无法手动释放
在一个函数运行期间,系统为该函数中分配的数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放
3.数组的长度一旦确定,其长度就不能更改
数组的长度不能在函数运行的过程中动态的扩充或缩小
4.A函数定义的数组,在A函数运行的期间可以被其他函数使用,
但A函数运行完毕之后,A函数中的数组将无法在被其他函数使用
传统方式定义的数组不能跨函数使用
为什么需要动态分配内存?
动态数组很好的解决了传统数组的这4个缺陷
传统数组也叫静态数组