内存管理专题(学习贴)

来源:互联网 发布:matlab编程怎么入门 编辑:程序博客网 时间:2024/05/29 12:10

最近在看高质量C++编程指南,总结总结,算是积累下

常见的内存错误及对策:

1. 内存分配未成功,却使用了它

一般分配内存都是调用malloc和new两个函数,因此在使用之前一定要看他的返回值是否为空。

如果将指针作为函数的形参,就要在函数开始使用断言assert进行检查。

2. 内存分配成功,但使用了未初始化的内存

新分配的内存上的值不确定,所以在分配内存后,要先为其赋初值,就置零吧

3.内存分配成功且已经初始化,但是操作越界

这种情况一般是在针对数组的操作,我本人经常也范这种嘀咕,for循环的边界条件经常要考虑半天

4.未释放内存,造成内存泄露

申请与释放要配套

5. 释放了内存却继续使用它

1) 函数返回的指针指向了栈内存,而栈内存随着函数的返回,栈帧就被回收了,EBP,ESP又指向了调用者的栈帧

2)使用free/delete后,未将指针的值置为null,产生了所谓的“野指针”


未完待续,先看书去了





原创粉丝点击