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

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

相关推荐
右耳朵猫AI几秒前
Python周刊2026W22 | Django 6.1 Alpha 1发布、Nuitka 4.1发布、PEP 831终稿、PEP 808已接受
开发语言·python·django
小欣加油2 分钟前
leetcode3689最大子数组总值I
c++·算法·leetcode·职场和发展·贪心算法
半个烧饼不加肉3 分钟前
JS 底层探究-- 普通函数和构造函数
开发语言·javascript·原型模式
caimouse6 分钟前
Reactos 第 5 章 进程与线程 — 5.12 进程挂靠
c语言·windows
小白不白11111 分钟前
C# WinForm 与 VP 二次开发
开发语言·c#
程序猿乐锅18 分钟前
【JAVASE | 第十七篇】Java 网络通信
java·开发语言
飞舞哲30 分钟前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
有点。30 分钟前
C++(贪心算法二)
开发语言·c++·贪心算法
meilindehuzi_a30 分钟前
透视 V8 底部:从物理内存到函数式哲学,重新解构 JavaScript 数组
开发语言·javascript·ecmascript
jllllyuz31 分钟前
HVDC 高压直流输电系统 MATLAB/Simulink 仿真全集
开发语言·matlab