读高质量c/c++编程之内存管理笔记1
来源:互联网 发布:oracle数据库创建索引 编辑:程序博客网 时间:2024/05/21 11:06
在学习c/c++时,对内存管理这块一直都有很多不熟悉的地方。在温习高质量c/c++编程中的内存管理,顺便记录学习笔记。牢记再心。谢谢林锐博士的好文章。。
1.内存分配方式
1)从静态存储区域分配。比如static,全局变量。这些是编译器对代码进行编译的时候就确定好了,同时这些内存在整个运行期间都存在,直到程序结束,系统自动回收。(如果是通过malloc/new的话需要自己手动释放 - -)。
2)在栈上创建。大多数在运行函数时,创建的变量,在函数结束时会自动被释放掉。(对于通过malloc/new的话同上)
3)堆上分配。也称动态内存分配。通过malloc/new申请内存,需要我们自己使用free/delete释放内存。
2.常见的内存错误及其对策
1)内存分配未成功,却使用了它。解决方法是,在对指针使用时对其检验是否为NULL。如果是函数的参数,则对其断言;如果是malloc/new申请内存,则使用if(NULL == p)对其检查。这里有个疑问?如果每次malloc/new时,都对其检查会不会重复,多余??
2)内存分配成功,但尚未初始化。在c/c++里,如果声明一个变量,并未给它初始化时,此时它的值是随机的。尤其是内置类型,数组。
3)内存分配成功并初始化,但操作内存的边界。数组越界。这是一个常出错的地方。
4)没有释放内存。导致内存泄露。原则就是谁申请,谁释放。malloc/free,new/delete这都是应该成dui
- 读高质量c/c++编程之内存管理笔记1
- 《高质量C编程指南》读书笔记之内存管理
- 《高质量C编程指南》读书笔记之内存管理 [转]
- C/C++高质量编程之内存管理
- 高质量程序设计指南-c/c++语言:笔记之内存管理
- 高质量C++编程之内存管理
- C/C++编程之内存管理
- unix c 学习笔记之内存管理
- OBject-C 学习笔记之内存管理
- Objective-C高级编程之内存管理(1)
- 高质量C/C++编程笔记1
- 《高质量C++/C编程指南》笔记——内存管理1-2
- C语言之内存管理
- C语言之内存管理
- C语言之内存管理
- C语言之内存管理
- Objective-C之内存管理
- Objective-C之内存管理
- android日志工具类
- 【笔记】PHP输出txt文件的换行方法
- page143
- 二元树中和为某一值的所有路径[数据结构]
- SICP Exercise 4.16
- 读高质量c/c++编程之内存管理笔记1
- Junit4 新断言语法介绍(转)
- UVa 340 - Master-Mind Hints
- C语言开发之关于sprintf 你知道多少
- 这关又没过去
- 笔记:Gof设计模式--Decorator
- postgresql常用命令
- sohu2012年实习生笔试题
- 比较好的android博客