【发布时间】:2012-01-12 00:37:06
【问题描述】:
在 Linux 上,使用 C,假设我有一个动态确定的 n 命名我必须在一个数组中存储的元素数量 (int my_array[n]) 只是在很短的一段时间内,比如一个函数调用,由此被调用的函数只使用很少的内存(几百字节)。
大多数情况下,n 很少,只有十分之一。但有时n 可能很大,高达 1000 或 1'000'000。
我如何计算,我的堆栈是否可以容纳n*o + p 字节而不溢出?
基本上:我的堆栈上还剩下多少字节?
【问题讨论】:
-
@BrendanLong,我看到了这个问题,但正如它所说“我正在使用带有 GCC 3.4.5 (mingw-special vista r3) 的 MinGW”,答案有点以 Windows 为中心。我的问题是以 Linux/*nix 为中心。 ;-)
-
为什么不能使用
getrusage()和getrlimit()? -
@sverre,如果您向我解释 getrusage 和 getrlimit,我会很高兴。 getrusage 的手册页说“ru_isrss (unmaintained) This field is currently used on Linux”。
-
@kay - 查看该页面上的第 4 个响应。
标签: c linux stack stack-size