3、C++动态内存管理

1. C/C++程序内存划分

1.1 内核区

1.2 用户区

栈区

共享区

堆区

代码区

数据区

2. C语言中的内存管理方式

2.1 申请

malloc

calloc

realloc

原型+区别(返回值和参数的区别)

2.2 释放

free

3. new /delete 和 new[] /delete[]

3.1 使用方式

3.2 底层实现原理

3.2.1 new的实现原理

内置类型:调用void *operator new(size_t size)------->循环调用malloc

自定义类型:

  1. 调用void* operator new(size_t size)------->循环调用malloc
  2. 调用构造函数初始化对象

3.2.2 delete的实现原理

3.2.3 new[]的实现原理

3.2.4 delete[]的实现原理

4. void* operator new(size_t size)和void operator delete(void*)可以重载

5.定义为new表达式

语法格式

使用场景:内存池

6. 常见面试题

malloc/free和new/delete的区别?

内存泄漏?

malloc底层实现原理(了解)

你可能感兴趣的:(c++总结,c++,开发语言)