【发布时间】:2023-03-03 10:15:01
【问题描述】:
我创建了一个需要 1 GB 内存的结构。当我在堆上分配它时,程序启动很快,我在应用程序管理器中看到它的内存使用量达到了这个数量,但是当我像一个简单的变量一样在堆栈上分配它时,应用程序需要更多的时间来启动和在应用程序管理器中,我看到它没有使用那么多内存(只有几 KB)。为什么?这是否意味着建议在堆中存储大量数据?这种情况会更快吗?我知道由于映射等原因,通常在堆栈上分配内存会更快,但在这种情况下,这很奇怪。谁能给我解释一下? 提前致谢!
【问题讨论】:
-
当你在堆栈上分配它时,你应该得到堆栈溢出。堆栈通常是 1MB 左右...
-
你究竟是如何在“堆栈上”分配这个的?
-
这似乎不对。你在什么平台上尝试这个?你试过的代码是什么?您确定您的对象实际上在堆栈上吗?你确定它实际上是一个 GB?
-
Jaa-c:程序刚刚启动,我没有收到任何错误。尼尔:因为我将对象分配为一个简单的变量。 XY; Francois:我正在使用 Windows 和 mingw。
-
您描述的行为似乎不可能。你能给我们看一些代码吗?
标签: c++ memory heap-memory stack-memory