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

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

相关推荐
pearlthriving几秒前
STL容器及其底层
开发语言·c++·算法
chao1898444 分钟前
具有飞行约束的无人机MPC MATLAB实现
开发语言·matlab·无人机
Byte不洛8 分钟前
深入理解C++多态机制:虚函数、虚表与对象内存模型解析
c++·多态·对象模型·虚函数表·虚基表
leaves falling10 分钟前
C++ 继承详解:从入门到深入
开发语言·c++
minji...14 分钟前
Linux 网络基础(一)认识协议,网络协议,网络协议分层框架搭建,网络传输基本流程,跨网络的数据传输
linux·运维·服务器·网络·c++·网络协议
草木红15 分钟前
Python 中使用 Docker Compose
开发语言·python·docker·flask
吃着火锅x唱着歌15 分钟前
深度探索C++对象模型 学习笔记 第四章 Function语意学(1)
c++·笔记·学习
lsx20240619 分钟前
PostgreSQL WITH 子句详解
开发语言
ID_1800790547325 分钟前
京东商品详情 API 数据分析业务场景 + JSON 返回参考
java·开发语言
周杰伦fans25 分钟前
C# CAD二次开发:RotatedDimension 旋转标注完全指南
开发语言·c#