1. 全局變量,靜態變量,char*分配的內存從靜態存儲區域獲得。
2. 局部變量所需的內存是從棧上分配,不同系統的內存管理器會分配不同的大小,有些爲2M,有些是4M,還有其他的。雖然分配的空間比較小,但棧內存分配運算內置於處理器的指令集中,效率很高。出了局部函數後自動釋放,較安全。
3. new/malloc申請的內存從堆上分配,最大爲2G,大小及生存期可自由指定,較靈活。
new流程:
3.1,分配內存
3.2,在內存的位置上調用構造函數
3.3,將內存的地址賦給指針對象
delete流程:
3.1.對對象調用析構函數
3.2.釋放該對象所使用的內存
4. 32位的機器支持的最大物理內存容量爲4G。當實際物理內存不夠的時候,會從磁盤中分配虛擬內存,使用中間層,利用虛表,建立磁盤與虛表的映射。當物理內存有空閒時,通過虛表對應的磁盤的物理地址,把該地址的內容讀取存儲到物理內存中。
5. 當用new申請200byte時,實際消耗掉的要>200byte。
6. 在結構體中,位置對齊也會浪費掉一些內存。