C/C++内存管理

C/C++内存分布

C语言中动态内存管理方式:malloc/calloc/realloc/free

C++内存管理方式

operator new与operator delete函数(重要点进行讲解)

new和delete的实现原理

内置类型

定位new表达式(placement-new) (了解)

常见面试题

**如何避免内存泄漏

  1. 工程前期良好的设计规范,养成良好的编码规范,申请的内存空间记着匹配的去释放。ps:
    这个理想状态。但是如果碰上异常时,就算注意释放了,还是可能会出问题。需要下一条智
    能指针来管理才有保证。
  2. 采用RAII思想或者智能指针来管理资源。
  3. 有些公司内部规范使用内部实现的私有内存管理库。这套库自带内存泄漏检测的功能选项。
  4. 出问题了使用内存泄漏工具检测。ps:不过很多工具都不够靠谱,或者收费昂贵。
    总结一下:
    内存泄漏非常常见,解决方案分为两种:1、事前预防型。如智能指针等。2、事后查错型。如泄
    漏检测工具。**

本文相关注解:

这样释放会报错,释放位置错了

这样不知道调用多少次析构函数,delete[ ]才知道,导致析构函数内存无法释放

如果没有析构函数则运行正常

相关推荐
菩提树下的凡夫23 分钟前
Python 环境管理工具
开发语言·python
索荣荣38 分钟前
JavaToken实战指南:从原理到应用
开发语言·python
zho_uzhou44 分钟前
c++ imgui implot绘图使用示例 visual studio
开发语言·c++·visual studio
dyyx1111 小时前
C++中的过滤器模式
开发语言·c++·算法
星夜泊客1 小时前
C# 基础:为什么类可以在静态方法中创建自己的实例?
开发语言·经验分享·笔记·unity·c#·游戏引擎
CappuccinoRose1 小时前
React框架学习文档(七)
开发语言·前端·javascript·react.js·前端框架·reactjs·react router
机器视觉知识推荐、就业指导1 小时前
用惯了QTimer定时器,如何快速在纯 C++ 项目中替换?
c++
消失的旧时光-19431 小时前
从拷贝到移动:C++ 移动构造与移动赋值是怎么被逼出来的?(附完整示例)
开发语言·c++
古译汉书1 小时前
部分.exe文件打开但是一直显示界面,点击任务栏持续无反应
开发语言·单片机·嵌入式硬件
2301_817497331 小时前
C++中的装饰器模式高级应用
开发语言·c++·算法