1. 程式人生 > >侯捷 C++記憶體管理 (一)

侯捷 C++記憶體管理 (一)

本篇記錄 《侯捷 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的過載示例: