【总结】C++ 出现内存问题
来源:互联网 发布:网络挂号:厦门长庚医院 编辑:程序博客网 时间:2024/06/05 13:18
C++里可能出现内存问题基本上出自这几个方面:
1.缓冲区溢出(buffer overrun)。
2.空悬指针、野指针。
3.重复释放(double delete)。
4.内存泄漏(memory leak)。
5.不配对的 new[]/delete。
6.内存碎片(memory fragmentation)。
解决思路:
1.缓冲区溢出:用std::vector<char>/std::string 或自己编写buffer class来管理缓冲区,自动记住用缓冲区的长度并通过成员函数而不是裸指针来修改缓冲区。
2.空悬指针、野指针:用shared_ptr/weak_ptr。
3.重复释放:用scoped_ptr,只在对象析构的时候释放一次。
4.内存泄漏:用scoped_ptr.对象析构的时候自动释放内存。
5.不配对的new[]/delete:把new[]统统替换为std::vector/scoped_array.当然应该有良好的习惯,有new[]就记得delete就行。
来源读书笔记
0 0
- 【总结】C++ 出现内存问题
- Linux C语言 内存越界问题总结
- Linux C语言 内存越界问题总结
- C语言内存分配及堆栈问题总结[转]
- C语言内存分配及堆栈问题总结
- C语言内存分配及堆栈问题总结 .
- C语言字符串、指针和内存问题总结
- iOS开发C语言关于内存问题的总结
- 话机出现问题总结
- Echarts出现问题总结
- C内存机制总结
- C语言中的内存问题(51单片机应用中出现的问题)
- 内存泄露问题总结
- 服务器内存问题总结
- 服务器内存问题总结
- 内存管理问题总结
- 内存泄漏问题总结
- 内存泄漏问题总结
- Android手机怎样导出数据库文件
- 关于初学者上传文件到github的方法
- 《人工智能学家》启动2016世界人工智能智商测试,原理和方法
- [leetcode] 15. 3Sum
- JS中alert中文乱码
- 【总结】C++ 出现内存问题
- 遮盖层
- 重复记录的处理
- JEasyframe使用教程2 项目结构
- 【C++基础07】引用函数返回值(引用当左值)
- 将秒数转化为时分秒
- 输入法不见了
- jQuery插件简单示例
- 借助JRebel使Tomcat支持热部署