内存分配
一般我们在使用C++来创建一个内置对象或者一个类的时候。一般都没有想过底层是怎样去实现的。本文是根据侯捷的视频进行的一部分总结,只考虑堆上的分配。
首先来看一张图

其实根据这张图我们可以去了解到C++基本内存分配规则了。在不考虑OS API的影响下,一切都是基于C语言当中的malloc/free来进行内存的分配和回收的。
现在再来进一步看一下各个函数:

接下来在看一下具体应用:
展示了一些用法,其实都不重要。

new的解剖
1进行operator new调用分配内存
2一个强制转换
3调用构造函数,但注意。不是所有环境都支持直接调用,一般是给编译器处理

本文探讨C++中的内存分配,主要涉及new、operator new、delete的解析,以及new[]、delete[]的区别。文章指出new操作会调用operator new分配内存并构造对象,delete则先析构对象再释放内存。placement new则允许在已分配的内存上构造对象,不涉及实际内存分配。
最低0.47元/天 解锁文章
1265

被折叠的 条评论
为什么被折叠?



