【发布时间】:2024-04-26 09:40:01
【问题描述】:
我正在处理其中一个线程。 一个程序崩溃了,因为 它在函数中本地声明了一个 10^6 的数组。
给出的原因是堆栈上的内存分配失败导致崩溃。
当全局声明相同的数组时,它工作得很好。(堆上的内存保存了它)。
现在,让我们假设, 栈向下增长,向上堆。
我们有:
---堆栈---
-------
---堆----
现在,我相信如果堆栈分配失败, 它也必须在堆上失败。
所以我的问题是:堆栈大小有限制吗? (越界导致程序崩溃)。 还是我错过了什么?
【问题讨论】:
-
这里有一点神话。您可能想查看this 的答案。
标签: c memory-management operating-system heap-memory stack-memory