2016-05-04 21 views
-2

これはたくさん尋ねられますが、私の状況に合った答えは見つかりませんでした。私のコードにはポインタがありませんでしたが、この問題に遭遇しました。私のプログラムは、プログラムをテストすることはできませんでしたが、数字を因数分解することを意図しています。私はxfceでUbuntu 16.04を使用していますので、実際にはxubuntuです。 main.cppにセグメンテーションフォールト(コアダンプ) - Xubuntu

#include <iostream> 

using namespace std; 

int main(){ 

int wholeNum; 
int newNum; 
int divider = 2; 
int b; 
int holderNum; 
int remainNum; 
bool stopper[wholeNum]; 



cin >> wholeNum; 

while (wholeNum != divider){ 

    holderNum = wholeNum/divider; 
    remainNum = wholeNum % divider; 

    if (remainNum == 0){ 

     if (stopper[divider] != true || stopper[holderNum] != true){ 
      cout << divider << " * " << holderNum << endl; 
     } 
     stopper[divider] = true; 
     stopper[holderNum] = true;  
    } 

divider ++; 
} 

return 0; 
} 

私はポインタを使用していないことだし、それは完全にコンパイルように私は、何が起こっているか分かりません。どんな助けでも大歓迎です!あなたは配列を宣言するとき

+1

自分でコードを実行しようとしても、誰かがコード内でバグを見つけられることは期待できません。 "私はプログラムをテストすることができませんでしたので、私が作ったプログラミングミスを許してください" – pmcilreavy

+0

@fallenidolエラーのために実行できませんでした。私はちょうどそのプログラム自体が適切に構築されていないかもしれないと言っていました。私は答えが主な問題に焦点を当てたかった –

答えて

2

は:

bool stopper[wholeNum]; 

wholeNumはまだ定義されていません。配列stopper[]は未定義のサイズです。最初にwholeNumcinを使用)の値を入力してから、stopper[]の配列を宣言する必要があります。だから、基本的には、このような何か:

int wholeNum; 
//Other lines of your code 

cin>>wholeNum; 
bool stopper[wholeNum]; //---> Here value of wholeNum is defined. 

Hereが正常に遵守プログラムです。

希望すると便利です。

関連する問題