堆内存比堆栈内存占用更多​​的RAM怎么可能?

时间:2019-05-12 06:53:11

标签: c stack heap heap-memory stack-memory

我正在为我的计算机科学专业学习C语言的操作系统课程。

我很好奇,是否在分配内存时这是否与任何浪费的空间有关,以及这是否在任何计算机操作系统上有所不同,我知道可以以任何顺序完成内存的安排最适合系统。

1 个答案:

答案 0 :(得分:1)

堆分配具有最大的对齐方式-通常为8个字节,因此各个分配最多“浪费”了7个字节以确保对齐。

然后每个分配都包括一个用于堆管理的元数据块。

在某些实现或调试版本中,可能还包含其他元数据或填充以检测堆错误,例如尝试释放非堆对象或阻止溢出。