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[ ]才知道,导致析构函数内存无法释放

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

相关推荐
欧特克_Glodon8 分钟前
C++医学图像处理经典ITK库用法详解<一>:图像输入输出模块功能
c++·图像处理·itk
weixin_4624462324 分钟前
用 Go 快速搭建一个 Coze (扣子)API 流式回复模拟接口(Mock Server)
开发语言·golang·状态模式
小鸡吃米…29 分钟前
Python编程语言面试问题二
开发语言·python·面试
谁动了我的代码?41 分钟前
QT<34> 利用线程池处理耗时任务以及回调函数的使用
开发语言·qt
柒.梧.42 分钟前
数据结构:二叉排序树构建与遍历的解析与代码实现
java·开发语言·数据结构
李迟44 分钟前
Golang实践录:接口文档字段转结构体定义
开发语言·golang
aduzhe1 小时前
int32 - int32MAX 出现异常
c语言·stm32
一个不知名程序员www1 小时前
算法学习入门---priority_queue(C++)
c++·算法
徐同保1 小时前
js 点击按钮 把文本转成文件并下载下来
开发语言·javascript·ecmascript
2501_930707782 小时前
使用C#代码更改 PowerPoint 幻灯片大小
开发语言·c#·powerpoint