【发布时间】:2010-12-05 17:12:07
【问题描述】:
可能重复:
When is it best to use a Stack instead of a Heap and vice versa?
我已经阅读了一些关于堆与堆栈的其他问题,但它们似乎更关注堆/堆栈的作用,而不是您为什么要使用它们。
在我看来,堆栈分配几乎总是首选,因为它更快(只是移动堆栈指针而不是在堆中寻找空闲空间),并且您不必手动释放分配的内存完成使用它。我可以看到使用堆分配的唯一原因是,如果您想在函数中创建一个对象,然后在该函数范围之外使用它,因为堆栈分配的内存在从函数返回后会自动取消分配。
还有其他我不知道的使用堆分配而不是堆栈分配的原因吗?
【问题讨论】:
-
@Naveen:Sorta - 另一个是 C++ 问题,这是 C,所以一些答案讨论了不适用于 C 的“删除”和“新”。
标签: c memory memory-management heap-memory stack-memory