为什么无限递归会导致段错误?
为什么堆栈溢出会导致段错误。
我正在寻找详细的解释。
int f()
{
f();
}
int main()
{
f();
}
每次调用 f() 时,都会增加堆栈的大小 - 这是存储返回地址的位置,以便程序知道 f() 完成时要转到哪里。由于您永远不会退出 f(),因此每次调用堆栈将至少增加一个返回地址。一旦堆栈段已满,您就会收到段错误错误。在每个操作系统中您都会得到类似的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)