前言:
C分配和释放动态内存的方式分别是malloc与free,malloc用于分配堆内存,free用于释放堆内存;
C++定义了两个运算符来分配和释放动态内存,运算符new分配堆内存,运算符delete释放new分配的堆内存;
1、new与delete用法简单介绍
new:
用法一: TypeName ∗pointer=new TypeName()用法一:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ TypeName\ \ *pointer=new\ \ TypeName()用法一: TypeName ∗pointer=new TypeName()
末尾小括号()可有可无,动态分配内存的对象是默认初始化的,调用默认构造函数,()用于初始化的,new返回TypeName类型的指针
,如:
vector是泛型类模板,vector<int>是具体类型就与basic_string与string的关系一样
double *p = new double;
double *pp = new double(3.14);
vector<int> *ppp = new vector<int>{1,2,3};
复制代码
用法二: TypeName ∗pointer=new TypeName[size]()TypeName ∗pointer=new