c语言学习笔记-动态内存分配

柔情痞子 提交于 2019-11-27 21:48:55

 以下内容均为看郝斌老师视频和教学大纲,总结,复制粘贴而来的笔记。

动态内存分配

  传统数组的缺点

    1.传统数组必须事先制定,且只能是常整数,不能是变量

    2.传统形式定义的数组,该数组的内存程序员无法手动释放,在一个函数的运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放

    3.数组的长度一旦定义,其长度就不能在更改,数组的长度不能在函数运行过程中动态的扩充或缩小

    4.传统方式定义的数组不能跨函数使用

为什么需要动态分配内存

  动态数组很好的解决了传统数组的这4个缺陷

  传统数组也叫静态数组

分配动态内存举例

int * p=(int *)malloc(int len)

释放动态内存的方法

free(p)

静态内存和动态内存的比较

    静态内存是由系统自动分配,由系统自动释放

    静态内存是在栈分配的

    

    动态内存是由程序员手动分配,手动释放

    动态内存是在堆分配的

跨函数使用内存的问题

    静态内存不可以跨函数使用

    静态内存在函数执行期间可以被其他函数使用

    静态内存在函数执行完毕之后就不能再被其它其他函数使用了

 

    动态内存可以跨函数使用

      动态内存在函数执行完毕之后仍然可以被其他函数使用

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!