1.C++的内存分布
2.c与c++的内存管理方式
初始化:
内置类型
对于内置类型,默认不初始化,但也可以初始化
单个和多个
没有初始化满会默认初始化为0
自定义类型
一般情况下,类的对象是无法访问的,因此malloc无法对对象进行初始化
但是可以使用new来分配动态内存,可以调用默认构造(或者带参构造)
free和delete同理,调用delete会自动析构
new与malloc的关系
operator new / delete是一个库中的全局函数
可以看作malloc和free的封装
调用new相当于调用operator new + 构造函数
delete同理
调用new的优点
对于malloc,开空间失败会返回空指针,因此需要额外判断
但是new失败会" 抛异常 ",停止执行,不需要再检查返回值了
operator new = malloc + 失败抛异常