分段故障(核心转储)

时间:2016-12-29 11:57:48

标签: c++

我正在编写一个c ++程序,运行它后会出现此错误:

#include<iostream>
using namespace std;

void Step(int dis,int len,int wid, int l=0,int w=0){

if(dis==0)
        cout<< l << "   "<< w << endl;


    Step(dis-wid,len,wid,l,w+1);
    Step(dis-len,len,wid,l+1,w);

}
int main(){

    Step(10,2,3);
    return 0;
}

2 个答案:

答案 0 :(得分:3)

每次调用Step两次调用Step,导致堆栈溢出。实际上,对Step的第二次调用从未发生,因为Step永远无法到达终点。

答案 1 :(得分:2)

Step()永远不会结束。在if语句中添加return,以便函数可以终止。