Joã*_*osa 7 c linux stack operating-system segmentation-fault
问题是关于linux如何处理堆栈.当我遇到运行此代码的分段错误时,为什么不确定?
#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>
void step(int n) {
    printf("#%d\n", n);
    step(n + 1);
}
int main() {
    step(1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
    因为堆栈溢出是未定义的行为。实现可以自由地测试它是否不会发生,在这种情况下,当堆栈已满时,程序应该以错误结束。但环境还可以提供一个堆栈,其大小取决于可用内存。或者更可能的是,您可能会在与 io 系统交互时遇到各种内存覆盖问题,这可能是不确定的。或者...(UB本质上意味着任何事情都可能发生)。