侯捷 C++記憶體管理 (一)
阿新 • • 發佈:2018-11-19
本篇記錄 《侯捷 C++記憶體管理 》,整理各節的要點,以備查閱
1.Overview
2.記憶體分配的每一層面
3.四個層面的基本用法
1)、對比一下:
4.基本構件之一newdelete expression(上) ——》new和operator new、malloc()函式的的關係:
5.基本構件之一newdelete expression(中) ——》直接呼叫解構函式
6.基本構件之一newdelete expression(下)
7.Array new 、array delete的洩露問題——》洩露的是指標指向的記憶體空間
當new[ ]的物件是int 或者複數等型別時,delete和delete[ ] 都是可以的,因為物件裡面沒有指標,解構函式不會清理指標所指向的記憶體;但是如果new[ ]的物件是帶有指標的話,那麼就一定要用delete[ ] 了。
8.Replacement new——》已經申請分配好了記憶體地址,如下:buf
總結:new ——》array new——》placement new的區分
placement new的形式:new()
9.過載
——》看operator new函式是否有過載,如果沒有過載,就呼叫全域性的operator new;如果有過載,就用過載過的函式。
容器裡面申請分配記憶體的流程:
10——11.過載示例(上 中 下)
placement new的過載示例: