C++ 内存分配层次以及memory primitives的基本用法
生活随笔
收集整理的這篇文章主要介紹了
C++ 内存分配层次以及memory primitives的基本用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分配層次
C++ memory primitives
| malloc | free() | C函數 | 不可 |
| new | delete | C++表達式 | 不可 |
| ::operator new() | ::operator delete() | C++函數 | 可 |
| allocator::allocate() | allocator::deallocate() | C++標準庫 | 可自由設計并以之搭配任何容器 |
分配與釋放的四個用法
1、malloc and delete
void* p1 = malloc(512); //512bytes free(p1);2、new and delete
complex<int>* p2 = new complex<int>; //one object delete p2;**3、::operator new() and ::operator delete() **
void* p3 = ::operator new(512); //512bytes,是個全局函數 ::operator delete(p3);4、allocator::allocate() and allocator::deallocate()
allocator就是分配器的名稱,用的時候要告訴它用的每個單元是什么,例如這里我們給它int,這樣就形成了一個type(類型).
類型名稱(typename)后面加上小括號(),就形成了一個臨時對象(建立的對象沒有名稱,生命周期只在使用的這一行)
注意GNUC,后面兩種是GNUC4.9版以后的寫法。向標準規范對齊了。
參考:
https://www.bilibili.com/video/BV1Kb411B7N8?p=3
總結
以上是生活随笔為你收集整理的C++ 内存分配层次以及memory primitives的基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园发光的草在哪兑换
- 下一篇: C++ 内存基本构件new/delete