一尘不染

有什么方法可以在运行时确定可用的堆栈空间吗?

linux

我知道堆栈大小是固定的。因此,我们不能将大对象存储在堆栈上,而是转向动态分配(例如malloc)。另外,在函数调用嵌套时会使用堆栈,因此我们也避免使用递归函数。在运行时是否有任何方法可以确定到目前为止已使用了多少堆栈内存,还剩下多少?

在这里,我假设Linux环境(gcc编译器)具有x86体系结构。


阅读 367

收藏
2020-06-07

共1个答案

一尘不染

只需阅读%esp,并记住其值就会下降。您已经从环境中知道了默认的最大大小,以及线程的起点。

gcc具有出色的装配支持,这与某些薄片不同。

2020-06-07