C++ 内存分配层次以及memory primitives的基本用法
生活随笔
收集整理的這篇文章主要介紹了
C++ 内存分配层次以及memory primitives的基本用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
分配層次
C++ memory primitives
| malloc | free() | C函數(shù) | 不可 |
| new | delete | C++表達(dá)式 | 不可 |
| ::operator new() | ::operator delete() | C++函數(shù) | 可 |
| allocator::allocate() | allocator::deallocate() | C++標(biāo)準(zhǔn)庫 | 可自由設(shè)計(jì)并以之搭配任何容器 |
分配與釋放的四個(gè)用法
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,是個(gè)全局函數(shù) ::operator delete(p3);4、allocator::allocate() and allocator::deallocate()
allocator就是分配器的名稱,用的時(shí)候要告訴它用的每個(gè)單元是什么,例如這里我們給它int,這樣就形成了一個(gè)type(類型).
類型名稱(typename)后面加上小括號(hào)(),就形成了一個(gè)臨時(shí)對(duì)象(建立的對(duì)象沒有名稱,生命周期只在使用的這一行)
注意GNUC,后面兩種是GNUC4.9版以后的寫法。向標(biāo)準(zhǔn)規(guī)范對(duì)齊了。
參考:
https://www.bilibili.com/video/BV1Kb411B7N8?p=3
總結(jié)
以上是生活随笔為你收集整理的C++ 内存分配层次以及memory primitives的基本用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩尔庄园发光的草在哪兑换
- 下一篇: 《蜀四贤咏》第三句是什么