c++内存管理1:primitives
目录
1、使用malloc() 和free() 分配和释放512字节的内存
3、调用::operator new()和::operator delete()全局函数
一般到CRT里,再往下会导致没有移植性
c++ primitives(c++ 工具)
基本用法
1、使用malloc() 和free() 分配和释放512字节的内存
2、使用new和delete
3、调用::operator new()和::operator delete()全局函数
事实上,第三个就是调用的第一个方法
4、分配器
早先版本
现在分配器的版本
new 表达式
new要做两件事
1、分配内存
2、调用构造函数
delete表达式
1、调用析构函数
2、释放内存
arrary new,arrary delete
因此需要注意加[]在delete时
构造由上往下,析构由下往上
可以发现arrary new的个数有被写到内存块里面
如果没有加上[],那么它当成一般的指针
上面的算式是要调到16的倍数,所以通过计算需要加上pad12个字节的空间
placement new
placement new指的是new(p)或者::operator new(size,void *)这样的形式将不会分配内存,因此不需要进行回收操作
分配内存的途径
容器的分配内存的途径