C++的new与delete

我们先定义一个complex类
1 | class complex{ |
new
现在我们要创建一个complex指针并赋初值
1 | Complex* pc=new Complex(1,2); |
编译器会将这个过程转化为以下三步:
1 | ① void* mem = operator new(sizeof(Complex)); //先分配内存给一个空指针,内部调用了malloc(n) |
delete
现在我们要释放这块内存
1 | delepe pc; |
编译器会转化为以下两步:
1 | ① Complex::~Complex(pc); //析构函数 |
delete[]
当我们声明一个数组后,释放它时为了避免内存泄漏就应使用delete[],尽管不一定会造成内存泄漏,但我们使用delete[] 是一个好习惯。
1 | Complex* p = new Copmpex[3]; |
评论
评论插件加载失败
正在加载评论插件