VC 記憶體虛擬位址空間

2022-04-01 05:17:39 字數 789 閱讀 5181

windows使用一組固定的範圍來分割程序的4gb虛擬位址空間,因此有時可以通過檢視指標的返回值來判斷指標是否有效。

虛擬位址空間

大小範圍

作用0x00000000~0x0000ffff

64kb

不能用來檢測空指標賦值(訪問衝突)

0x00010000~0x7ffeffff

64kb~2gb-64kb

win32程序私有(非保留),用於程式和資料

0x7fff0000~0x7fffffff

2gb-64kb~2gb

不能用來防止覆蓋os分割槽(訪問衝突)

0x80000000~0xffffffff

2gb~4gb

為作業系統保留,不可訪問(訪問衝突)

0x00030000~0x0012ffff

執行緒棧0x00130000~0x003fffff

堆(有時堆位於此處)

0x00400000~0x005fffff

可執行**

0x00600000~0x0fffffff

堆(有時堆位於此處)

0x10000000~0x5fffffff

0x77000000~0xffffffff

apvapi32.dll、comctl32.dll、gdi32.dll、kernel32.dll、ntdll.dll、shell32.dll、user32.dll

全面介紹windows記憶體管理機制及c++記憶體分配例項(一):程序空間

記憶體分布:

虛擬位址空間

當處理器讀或寫入記憶體位置時,它會使用虛擬位址。作為讀或寫操作的一部分,處理器將虛擬位址轉換為實體地址。通過虛擬位址訪問記憶體有以下優勢 程序可用的虛擬位址範圍稱為該程序的 虛擬位址空間 每個使用者模式程序都有其各自的專用虛擬位址空間。對於 32 位程序,虛擬位址空間通常為 2 gb,範圍從 0x0...

虛擬位址空間

14 共 14 對本文的評價是有幫助 評價此主題 程序可用的虛擬位址範圍稱為該程序的 虛擬位址空間 每個使用者模式程序都有其各自的專用虛擬位址空間。對於 32 位程序,虛擬位址空間通常為 2 gb,範圍從 0x00000000 至 0x7fffffff。對於 64 位程序,虛擬位址空間為 8 tb,...

虛擬位址空間

1 text 段 存放程式執行的一塊記憶體區域,此區域大小在執行之前就已經確定下來了。2 data資料段 全域性初始化資料區 靜態資料區 只初始化一次,指用來存放程式中已初始化的全域性變數的一塊記憶體區域 已經初始化的全域性變數 靜態變數和常量 3 bss未初始化資料區 用來存放程式中未初始化的全域...