其他分享
首页 > 其他分享> > 有没有办法在运行时确定可用的堆栈空间?

有没有办法在运行时确定可用的堆栈空间?

作者:互联网

我知道堆栈大小是固定的.所以我们不能在堆栈上存储大对象,我们转向动态分配(例如malloc).此外,当存在函数调用嵌套时使用堆栈,因此我们也避免了递归函数.在运行时有没有办法确定到目前为止使用了多少堆栈内存以及剩下多少?

在这里,我假设使用x86架构的linux环境(gcc编译器).

解决方法:

只需阅读%esp,并记住它的值下降.您已经从环境中了解了默认的最大大小,以及线程的起点.

gcc具有很好的装配支持,不像那里的一些薄片.

标签:c-3,linux,stack-overflow,stack,compiler-construction
来源: https://codeday.me/bug/20191005/1855501.html