8.6 动态内存分配
一、传统数组的缺点
- 数组长度必须事先指定,且只能是常整数,不能是变量
- 传统形式定义的数组,该数组的内存程序员无法手动释放。
数组一旦定义,系统为该数组分配的存储空间就会一直存在,除非该数组所在的函数运行结束。在一个函数的运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放。 - 数组的长度不能在函数运行的过程中动态的扩充或缩小,数组的长度一旦被定义,其长度就不能再更改。
- A 函数中定义的数组,在A 函数运行期间可以被其他函数使用,但在A函数运行结束后,A函数中的数组将再也无法被其他函数使用。(传统方式定义的数组不能跨函数使用)
void g(int *pArr,int len)
{
pArr[2]=88;
}
void f(void)
{
int a[5]={
1,2,3,4,5};