2016-12-29 9 views
-7

私は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

質問をするのを忘れました。それが "コアダンプをどのようにデバッグするのですか"であれば、使用したいデバッガを教えてください。 –

+1

再帰が決して停止しないため、コアダンプが発生します。コールスタックをオーバーフローしました – StoryTeller

+2

ブレーク再帰の基本条件を書き忘れました。 – user1438832

答えて

3

スタックオーバーフローにつながるStep呼び出しStepさらに2回、へのすべてのコール。実際には、Stepへの2回目の呼び出しは、Stepが決して終了することができないので決して起こりません。

2

Step()は決して終了しません。 if文にreturnを追加すると、関数を終了できます。

関連する問題