在下面的示例中,我尝试将堆栈大小设置为1kb。
为什么现在可以在foo()中分配大小为8kb的int数组,放在栈上?
为什么现在可以在foo()中分配大小为8kb的int数组,放在栈上?
#include <stdio.h>
#include <sys/resource.h>
void foo(void);
int main() {
struct rlimit lim = {1024, 1024};
if (setrlimit(RLIMIT_STACK, &lim) == -1)
return 1;
foo();
return 0;
}
void foo() {
unsigned ints[2048];
printf("foo: %u\n", ints[2047]=42);
}