现在的位置: 首页 > 综合 > 正文

关于内存管理的一些学习

2019年05月28日 ⁄ 综合 ⁄ 共 548字 ⁄ 字号 评论关闭

觉得很有必要重新学习一下内存管理了,于是翻书,网上查资料,开始了新一轮的学习,想能成功的穿越这个“雷区”。

林锐的高质量程序设计最近一直都在手边,当然先看的是它,同时他也有一章专门讲内存管理的。

        一。内存分配方式

(1)静态存储区域分配。

              就是在程序编译时就已经分配好了,内存在整个程序运行期间都存在,全局变量,static都是。

(2)堆栈分配;

             在函数执行期间,函数的局部变量,包括形参的储存单元都是创建在堆栈上的。函数结束时储存单元自动释放(堆栈清退)。

堆栈的内存分配特点:运算内置于处理器的指令集中,效率高,不存在数百风险,但是分配的内存有限,也能出现堆栈溢出。

(3)动态内存分配,即从堆(heap),自由储存空间上分配。

           程序运行时malloc()或new申请任意数量内存在恰当时机可用free()或delete释放。

使用原则嘛:能使用堆栈和静态就不要动态了。使用较多的额外开销。

 

二。内存错误与对策,规则

错误1)内存分配未成功却使用

错误2)内存分配成功却为初始化

错误3)内存分配成功,也初始化了,却操作却越界

错误4)使用结束后忘记释放内存,或者释放局部内存

错误5)释放了内存去还在使用

 

根据这些错误可以

     

 

【上篇】
【下篇】

抱歉!评论已关闭.