堆的空间用完了,不过不一定是内存用完了。比如 32 位 Windows 应用程序中用户态空间为 2G,包括静态数据、代码、栈和堆,如果分配的动态空间太多,把这 2G 空间用完了,继续分配内存就会失败了。