为什么要叫原生版本?
因为我觉得这一块是 C++ 自带的表达式 表达式里面 去调用 C语言的 CRT 库中的 malloc
和 free
但这篇 只讲自带的表达式 而不去深究 CRT 中的内存分配函数 所以只叫原生版本
常见的内存分配
分配 | 释放 | 类属 | 可否重载 |
---|---|---|---|
malloc() | free() | C 函数 | 否 |
new | delete | C++ 表达式 | 否 |
::operator new() | ::operator delete() | C++ 函数 | 可 |
allocator |
allocator |
C++ 标准库 | 自由设计搭配的容器 |
使用示例
其中 ::operator new() 和 ::operator delete()
调用了 malloc() 和 free()
1 | void *p1 = malloc(512); |