堆栈内存的起始地址是什么?

Gun*_*n J 0 c++ memory stack

嗨,我有一个面试问题,他们被问到堆栈内存的起始地址是什么。请我不知道地址能否请您帮忙如何找到堆栈内存的起始地址。

感谢和问候, Gunasekaran J

Jef*_*ica 6

在 C++ 中不能保证甚至一个堆栈。即使实际上有一个,它在内存中的位置因编译器实现、平台、环境等而异......

有诸如地址随机化之类的操作系统功能,甚至会强制地址在运行之间更改。您不能尝试以编程方式确定它,因为允许编译器修改/优化您的代码。

基本上,回答这个问题的方法是解释堆栈是什么,它的大小确实不同,位置无关紧要。然后解释它的用途以及它通常是如何实现的。您甚至可以谈论早期/简单的 CPU 以及实现它的寄存器。

  • 我想这正是他们正在寻找的答案。作为一名多次面试候选人的经理,如果我在面试中问某人这个问题,我会对这个答案感到满意。提出这样的问题的第二个动机是评估您和面试者之间的沟通。 (2认同)