私は本物のC++初心者なので、我慢してください。
簡単なプログラムがあります。でコンパイルしてg++ -Wall prog.cpp -o prog
から実行すると、./prog
segfaultsだけになります。
いじくり回した後、makefileを作成しました(以下を参照)。を実行するmake test
と、プログラムがコンパイルされて正常に実行されます。で実行すると./prog
、segfaultsになります。(正確なエラーメッセージはSegmentation fault (core dumped)
)
誰かが理由を説明できますか?
プログラムは次のとおりです。
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <sys/time.h>
int main() {
srand(time(NULL));
//int i, j, k, i2, j2, k2;
int N = 1000;
double mul1[N][N];
double mul2[N][N];
double res[N][N];
printf("N: %d\n", N);
for(int x=0; x<N; x++) {
for(int y=0; y<N; y++) {
mul1[x][y] = rand() % 100;
mul2[x][y] = rand() % 100;
res[x][y] = 0;
}
}
return 0;
}
これがmakefileです:
all: prog
prog: prog.cpp
$(CXX) -Wall -g -o $@ prog.cpp
test: prog
./prog
clean:
rm -f prog