【发布时间】:2021-08-17 05:03:22
【问题描述】:
所以我最近开始学习 C++,我对内存分配、垃圾收集、堆、堆栈等非常感兴趣......
我写了这个程序,我想知道它会对我的电脑做什么?它会因为我的 RAM 被填满而崩溃吗?它会运行得更慢吗?它会在它填满太多内存之前停止吗?
我太害怕在我的机器上运行它了。
#include <iostream>
using namespace std;
int main()
{
while (true) {
int* x = new int;
}
}
编辑:
所以我在我的电脑上运行了这个程序,它实际上只是一个吃公羊的程序。我一直在运行,直到 Windows 资源管理器失败并且我的桌面变黑。然后我重启了电脑,一切正常。
【问题讨论】:
-
当操作系统不准备为您提供更多内存时,您的
new将失败并出现异常。
标签: c++ garbage-collection dynamic-memory-allocation