为什么无限递归会导致seg错误?为什么堆栈溢出导致seg错误.我正在寻找详细的解释.
int f()
{
f();
}
int main()
{
f();
}
Run Code Online (Sandbox Code Playgroud)
Ski*_*izz 16
每次调用f()时,都会增加堆栈的大小 - 这就是存储返回地址的位置,因此程序知道f()完成时的去向.由于您永远不会退出f(),因此每次调用堆栈将至少增加一个返回地址.一旦堆栈段满了,就会出现段错误.您将在每个操作系统中获得类似的结果.
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |