As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center获取指导。




已关闭8年。





在一次采访中有人问我有关堆和堆栈内存结构的问题。那家伙问我,拥有堆栈有什么好处?我不确定他在说什么。还有什么其他方法可以设置地址空间来执行c程序?

最佳答案

堆栈的好处是它允许直接和间接递归。在无堆栈语言(如Fortran)中,每个函数的局部变量都是全局分配的,因此,如果您调用函数两次而又没有从函数返回,则将破坏返回地址,并且会遇到麻烦。此外,如果您只在给定的时间使用其中的一些,则Fortran对每个过程的内存分配效率不是很高。

正如Murali指出的那样,堆栈相对于堆的好处是更有效的分配和释放。从技术上讲,堆栈可以引用概念上的动态(调用)堆栈或其内存部分,因此语言可以具有在动态堆空间中分配的调用堆栈,这可能使实现协程,连续和闭包更加容易。

关于stack - 从一次采访中:使用C进行堆栈有什么好处? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1724785/

10-11 22:36
查看更多