0、前言
C++语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。
1、new动态内存的分配
1.1、new动态分配和初始化对象
1)、new内存分配
在自由的空间分配的内存是无名的,new无法为其分配的对象命名,而是返回一个指向该对象的指针。
int* pi = new int;//pi指向一个动态分配的,为初始化的无名对象。
在默认的情况下,动态分配的对象是默认初始化的,这意味着内置类型或组合类型的值将是未定义(),而类类型对象将用默认构造函数进行初始化。
std::string* ps = new std::string;//初始化为空的string
int* pi = new int;//pi指向未初始化的int
2)、初始化对象
可以用直接初始化来初始化一个动态分配的对象,用圆括号或者列表初始化(花括号):