Skip to content

在 4GB 物理内存的机器上申请 8G 内存

经典面试题:malloc 能成功吗?


💡 答案:

虚拟内存机制让每个进程以为自己独占内存空间。默认情况下,Linux 允许 overcommit(过量分配)。


🔬 原理

  • 进程看到的是虚拟地址空间(32位 ~4GB,64位超大)
  • malloc 只是分配虚拟内存,不立即分配物理内存
  • 真正使用时触发缺页中断,才分配物理页
  • 即使物理内存不够,也可能通过 swap 换出

📖 深入:虚拟内存详解

基于 VitePress 构建