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]; |
- 本文标题:C++的new与delete
- 本文作者:recovxy
- 创建时间:2021-03-12 14:23:05
- 本文链接:https://naiv.xyz/2021/03/12/2021-03-12-C++ new and delete/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论