认真对待内存管理
来源:互联网 发布:大华监控软件 编辑:程序博客网 时间:2024/05/17 04:30
内存管理,新手需要掌握的一门课。
内存的分配方式:
- 静态存储区
- 栈,栈内存的分配是由内置于处理器中的指令来完成,高效,但分配的容量有限,所以像函数的局部变量等避免分配大空间的内存,以免栈爆掉。
- 堆
常见内存错误及解决:
- 内存分配并没有成功 [分配完后立马check]
- 未初始化[缺少初始值不确定]
- 越界访问内存[确定访问的地址在控制范围之内]
- 内存泄漏[的确,内存分配后你释放或者不释放,它都在那里,不过能不能够给你用,就......]
- 访问已经释放掉的内存[函数局部变量使用的栈空间在函数结束后会自动destory掉,所有切记不要返回指向这些内存的指针或引用,另外释放放掉的内存需要置为NULL,避免出现野指针]
指针和数组:
- 数组名对应着一块内存,而不是指向一块内存。
- 数组的地址和容量在其生命周期内不变,只有内容可变。
- 指针可指向任何类型的内存块。
指针参数:
- 如果函数的参数是一个指针,不要为该指针去动态申请内存,除非它是指向指针的指针,或者用函数返回值来传递内存。
free / delete:
- 指针消亡并不代表所指向的内存消亡。
- 指针指向的内存消亡并不代表指针本身消亡或成为NULL指针。
野指针:
- 野指针的来源:(1)没有初始化;(2)释放后未指向NULL。
malloc / free:
- malloc并不识别所申请的内存是什么类型。
- 如果p是一个NULL指针,那free(p)执行多少次都不会有问题,如果不是,则连续两次释放就会出错。
- 认真对待内存管理
- 认真对待每一天
- 认真对待 懂得放弃
- 认真对待IT行业及相关培训
- 认真对待数据库中char和varchar
- 认真对待你的二十几岁
- 请认真对待自己的人生
- 忽略的warning 带来的认真对待
- 开始认真对待我的csdn账号
- << 学习思路分析 >> 认真分析仔细对待
- 认真的对待批评以保护前进的动力
- 今天总结:不管什么面试都要认真对待
- “亡羊补牢”——提醒大家认真对待项目总结
- 等待我的未来 认真对待我的现在
- 请认真对待数据库中的char 与varchar
- 产品经理为什么要认真对待测试工作
- imo:在人性化管理方式下“认真做人,认真做事”
- 你需要认真了解并对待的11条理财真理
- Qt 之 qobject_cast 分析及QTBUG 20616
- 每天学习一算法系列(21)(输入两个整数n 和m,从数列1,..n 中随意取几个数使和等于m)
- Eclipse 好用快捷键
- DataTable 按条件拆分多个表(DataTable分组)
- C++中头文件中是包含include还是包含类的前置声明
- 认真对待内存管理
- 变量命名约定
- HDU3722 Card Game KM算法的二分图带权匹配
- SFTP协议
- sql study (2)
- POJ 3175 Finding Bovine Roots
- 虚线格 虚线行
- Java通过JNI调用CUDA矩阵乘法
- 如何学习LINUX -- 鸟哥的Linux私房菜