Update zur Frage: Hier ist die SSCCE wo ich SIGSEV
auf str1_h[0][j] = bar1(str1_c[j]);
erhalten. Alle Variablen sind nicht Null, die ich überprüft gdb mit:Segmentation Fault, wenn Variablen sind nicht null, sondern auf `callq`
#include <fstream> //ifstream and ofilestream
using namespace std;
int bar1(int);
int bar2(int);
int bar3(int);
int main() {
string str1 = "string";
ifstream ifs;
ifs.open("./file.txt");
string line, str2;
while (!ifs.eof()) {
ifs >> line;
str2 += line;
}
ifs.close();
unsigned str2_l = str2.length();
unsigned str1_l = str1.length();
unsigned n = str2_l - str1_l + 1;
int str1_c[4];
str1_c[0] = 0;
str1_c[1] = 0;
str1_c[2] = 0;
str1_c[3] = 0;
int x[3][4][n];
int str1_h[3][4];
for (unsigned j = 0; j < 4; j++) {
str1_h[0][j] = bar1(str1_c[j]);
str1_h[1][j] = bar2(str1_c[j]);
str1_h[2][j] = bar3(str1_c[j]);
for (unsigned i = 0; i < n; i++) {
x[0][j][i] = bar1(0);
x[1][j][i] = bar2(0);
x[2][j][i] = bar3(0);
}
}
}
int bar1(int x) {
return 0;
}
int bar2(int x) {
return 0;
}
int bar3(int x) {
return 0;
}
ist Ihr Algorithmus rekursiv? Absturz während eines Anrufs könnte Stapelüberlauf bedeuten. –
Bitte versuchen Sie, ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) zu erstellen und zeigen Sie uns. Oder zeigen Sie uns zumindest relevante Deklarationen und Initialisierungen und die tatsächlichen Werte der beteiligten Variablen (wie 'j'). –
können Sie in 'division' gehen (setzen Sie einen Haltepunkt in die erste Zeile davon) –