C++記憶體分配策略(先分配再使用/邊分配邊使用)
阿新 • • 發佈:2021-10-26
C++中使用記憶體堆空間時,若已知整體資料量的大小,則優先分配一定空間再使用;不能一邊分配記憶體一邊使用
例如:
已知需要載入一部分檔案資料到記憶體中,且檔案資料中記錄的是一個一個同一類的例項物件資料
資料檔案結構:總的物件個數 + 連續的物件資料
載入讀取資料方式一:
1、讀取物件總個數
2、利用物件總數首先分配一定的堆空間
3、for迴圈中讀取一個一個的物件資料,並賦值到2中分配的記憶體空間中
載入讀取方式二:
1、while迴圈中,每次讀取一個物件資料,直至檔案結束
2、迴圈體中,每次向系統申請一個物件大小的堆空間,並讀取一個物件資料,賦值到剛才分配的空間中
載入讀取方式一 優於 方式二:一次性向系統申請足夠的記憶體,只需new一次,且系統給出的堆空間地址連續;比方式二多次呼叫new申請空間開銷小很多