以下内容均为看郝斌老师视频和教学大纲,总结,复制粘贴而来的笔记。
动态内存分配
传统数组的缺点
1.传统数组必须事先制定,且只能是常整数,不能是变量
2.传统形式定义的数组,该数组的内存程序员无法手动释放,在一个函数的运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放
3.数组的长度一旦定义,其长度就不能在更改,数组的长度不能在函数运行过程中动态的扩充或缩小
4.传统方式定义的数组不能跨函数使用
为什么需要动态分配内存
动态数组很好的解决了传统数组的这4个缺陷
传统数组也叫静态数组
分配动态内存举例
int * p=(int *)malloc(int len)
释放动态内存的方法
free(p)
静态内存和动态内存的比较
静态内存是由系统自动分配,由系统自动释放
静态内存是在栈分配的
动态内存是由程序员手动分配,手动释放
动态内存是在堆分配的
跨函数使用内存的问题
静态内存不可以跨函数使用
静态内存在函数执行期间可以被其他函数使用
静态内存在函数执行完毕之后就不能再被其它其他函数使用了
动态内存可以跨函数使用
动态内存在函数执行完毕之后仍然可以被其他函数使用