C/C++教程

侯捷 c++ 内存管理笔记 p1-p6

本文主要是介绍侯捷 c++ 内存管理笔记 p1-p6,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

c++ memory primitives在这里插入图片描述

四种内存使用方式

  1. malloc(size_t size);
  2. 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
}
  1. void *ptr=::operator new(size_t size);
    代码逻辑如下
    在这里插入图片描述

  2. 形式不同,见下图
    在这里插入图片描述在这里插入图片描述

delete

下图通过指针直接调用析构函数可以运作,但上面调用构造函数不可以
在这里插入图片描述

这篇关于侯捷 c++ 内存管理笔记 p1-p6的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!