ソースコードは以下のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define NA 11
int main(void)
{
int NB = NA - 1;
int an = pow(2,NB);
int NC = an / 2;
int a[an][an];
int l,k,m;
for(l=0;l<an;l++) for(k=0;k<an;k++) a[l][k]=0;
k = 0;
for(l=0;l<NC;l++){
a[l][k]=1;
a[l][k+1]=1;
k=k+2;
}
k = 0;
for(l=NC;l<an;l++){
a[l][k]=1;
a[l][k+1]=1;
k=k+2;
}
a[0][0]=0;
for(l=0;l<an;l++){
for(k=0;k<an;k++){
for(m=0;m<NA-2;m++){
if ((k >> m) & 1 != 0) {
if((k >> (m+1)) & 1 != 0) {
a[l][k]=0;
a[k][l]=0;
}
}
}
}
}
printf("a[%d][%d]={",an,an);
for(l=0;l<an;l++){
printf("{");
for(k=0;k<an;k++){
printf("%d",a[l][k]);
if(k!=an-1){
printf(",");
}else{
printf("}");
if(l!=an-1) printf(",");
}
}
if(l!=an-1) printf("\n ");
}
printf("};\n");
}
エラーメッセージは以下のとおりです。
_cygtls:handle_exceptions: Erorr while dumpting state (probably corrupted stack)
Segmentation fault (core dumped)
環境はWindows XP での Cygwin 上での実行です。
NA=11で正しく出力するにはどうしたらいいでしょうか? 教えてください。