4GB 物理內存機器上循環 malloc(100MB) 成功分配 5100 MB 才失敗,每次結果略異。
現代操作系統(Windows/Linux)使用虛擬內存:
malloc 僅預留虛擬地址空間,不立即分配物理頁框。
// 寫入每個頁確認物理提交
char *p = malloc(100*1024*1024);
for (size_t i=0; i<100*1024*1024; i+=4096) p[i] = 0; // 強制提交
若立即寫入,分配量將接近物理內存+頁文件上限。
GetProcessMemoryInfo (PSAPI) 獲取 WorkingSetSize (工作集) 與 PagefileUsage。/proc/self/status 中 VmRSS、VmSize。