2016-05-04 10 views
-2

Ich weiß, dass das oft gefragt wird, aber ich konnte keine Antwort finden, die meiner Situation entspricht. Ich hatte keine Zeiger in meinem Code und dennoch stieß ich auf dieses Problem. Mein Programm soll eine Zahl faktorisieren, obwohl ich das Programm nicht testen konnte. Ich benutze Ubuntu 16.04 mit xfce, also eigentlich xubuntu. main.cppSegmentierungsfehler (Core Dumped) - 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; 
} 

Ich weiß nicht, was passiert ist, als ich nicht Zeigern und es perfekt zusammengestellt. Jede Hilfe wäre sehr willkommen!

+1

Sie können nicht erwarten, dass jemand Fehler in Ihrem Code findet, wenn Sie nicht einmal die Mühe darauf verwendet haben, ihn selbst auszuführen. "Vergeben Sie irgendwelche Programmierfehler, die ich gemacht habe, weil ich das Programm nicht testen konnte" – pmcilreavy

+0

@ fallenidol konnte ich wegen des Fehlers nicht ausführen. Ich habe nur gesagt, dass das Programm an sich nicht richtig aufgebaut wurde. Ich wollte, dass sich die Antworten auf das Hauptproblem konzentrieren –

Antwort

2

Wenn Sie das Array deklarieren:

bool stopper[wholeNum]; 

wholeNum ist noch nicht definiert. Das Array stopper[] hat eine undefinierte Größe. Sie müssen zuerst den Wert wholeNum (unter Verwendung von cin) eingeben und dann das stopper[] Array deklarieren. Also im Grunde so etwas wie diese:

int wholeNum; 
//Other lines of your code 

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

Here ist erfolgreich erfüllt Programm.

Hoffe, das hilft!

Verwandte Themen