在 C 中有一个内存模型:
+--------+ Last Address of RAM
| Stack |
| | |
| v |
+--------+
RAM | |
| |
+--------+
| ^ |
| | |
| Heap |
+--------+
| ZI |
+--------+
| RW |
+========+ First Address of RAM
栈和堆空间在相反的方向增加。它们会在中间重叠。
- 在裸机环境下,malloc 什么时候会返回 NULL?
- 在裸机环境中,如何防止栈与堆重叠?
malloc
。相反,使用内存池来管理固定数量的固定大小的内存块。 - user3386109malloc
函数通常不存在。如果它确实存在,则应查阅其所属的文档以了解详情。 - user253751malloc(0)
可能会返回NULL
,但并不意味着内存不足。结果因情况而异。 - chux - Reinstate Monica