内存管理专题(学习贴)
来源:互联网 发布:matlab编程怎么入门 编辑:程序博客网 时间:2024/05/29 12:10
最近在看高质量C++编程指南,总结总结,算是积累下
常见的内存错误及对策:
1. 内存分配未成功,却使用了它
一般分配内存都是调用malloc和new两个函数,因此在使用之前一定要看他的返回值是否为空。
如果将指针作为函数的形参,就要在函数开始使用断言assert进行检查。
2. 内存分配成功,但使用了未初始化的内存
新分配的内存上的值不确定,所以在分配内存后,要先为其赋初值,就置零吧
3.内存分配成功且已经初始化,但是操作越界
这种情况一般是在针对数组的操作,我本人经常也范这种嘀咕,for循环的边界条件经常要考虑半天
4.未释放内存,造成内存泄露
申请与释放要配套
5. 释放了内存却继续使用它
1) 函数返回的指针指向了栈内存,而栈内存随着函数的返回,栈帧就被回收了,EBP,ESP又指向了调用者的栈帧
2)使用free/delete后,未将指针的值置为null,产生了所谓的“野指针”
未完待续,先看书去了
- 内存管理专题(学习贴)
- 专题五-内存管理的艺术
- 【专题】详细介绍Java的内存管理与内存泄露
- 【专题】uC/OS-II内核架构解析(6)---uC/OS-II内存管理
- 学习linux的内存管理(一)
- 学习linux的内存管理(二)
- Linux内存管理学习笔记(一)
- C++内存管理学习笔记(1)
- C++内存管理学习笔记(2)
- C++内存管理学习笔记(3)
- C++内存管理学习笔记(4)
- C++内存管理学习笔记(5)
- C++内存管理学习笔记(6)
- C++内存管理学习笔记(7)
- JVM内存管理学习总结(一)
- C++内存管理学习笔记(1)
- oc学习笔记(八)内存管理
- java学习--java内存管理(1)
- mknod
- C/C++函数调用约定与函数名称修饰规则探讨
- 奇怪我了!!!
- hdu 4003 Find Metal Mineral
- sscanf和sstream的使用
- 内存管理专题(学习贴)
- 无刷新ajax调用js
- 前置++和后置++的区别
- OpenCore 的代码结构
- WinDBG+VMware 调试内核
- vb向数据库中读取单个图片文件
- WRK- 搭建调试环境
- http://www.bluecoat.com.cn/resources/overview
- 《IT项目管理那些事儿》——新浪微博抽奖活动