侯捷 c++ 内存管理笔记 p1-p6
作者:互联网
c++ memory primitives
四种内存使用方式
- malloc(size_t size);
- new ClassName;
例:
在这里插入代码片
Complex *pc=new Complex(1,2);//调用普通new
//编译器转为如下
Complex *pc;
try{
void* mem=operator new(sizeof(Complex));//调用operator new(size_t size)
pc=static_cast<Complex*>mem;
pc->Complex::Complex(1,2);//自己使用时会报错,只有编译器才可直接使用
}catch(std::bad_alloc){
//若执行失败则不执行constructor
}
-
void *ptr=::operator new(size_t size);
代码逻辑如下
-
形式不同,见下图
delete
下图通过指针直接调用析构函数可以运作,但上面调用构造函数不可以
标签:p1,p6,调用,operator,pc,Complex,侯捷,new,size 来源: https://blog.csdn.net/OOOOOOAAAAA/article/details/122771451