Cygwinでの実行時に生じるエラーの原因を教えてください!
以下は2次元の配列を左に90度回転させるのにかかるサイクルカウントを計測するプログラムです。
---------------------------------------------------
#include "clock.h"
#define N 512
typedef int matrix_t[N][N];
void naive_rotate(matrix_t src, matrix_t dst){
int i, j;
double d;
start_counter();
for(i=0; i < N; i++){
for(j=0; j < N; j++){
dst[N-1-j][i] = src[i][j];
}
}
d = get_counter();
printf("CycleCount:%f\n",d);
return;
}
int main(){
int i,j;
matrix_t a,b;
for(i=0; i < N; i++){
for(j=0; j < N; j++){
a[i][j] = j;
}
}
naive_rotate(a,b);
return 0;
}
-------------------------------------------------
Nを64,128・・・,2048のそれぞれでこいつをコンパイル、
$ gcc -O2 -I../include L_rotate.c ../lib/libcsapp.a
実行すると、Nが512以上のときは
$ ./a.exe
45 [main] a 8024 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
Segmentation fault (core dumped)
と表示されてしまいます。libcsapp.aには問題はないので、このプログラム中のどこをどう直せばよいのでしょうか?
お礼
いろいろ試してみましたがちょっと僕にはわからなかったですね>< ありがとうございました!