C程序运行不能,似乎是栈的问题

离散的程序作业,因为二维的传到函数里比较麻烦,就写在主函数里了,求不要介意。现在程序不知道为什么连main都进入不了,用CB和VS都是直接崩,实在不懂哪里的问题。谢谢~

 #include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 1000

int main(){
    int HOctHalf[N][N];
    int m,n;
    scanf(" %d%d",&m,&n);
    for(int i = 1;i <= m;i++){
        for(int j = 1;j <= n-m;j++){
            scanf(" %d",&HOctHalf[i][j]);
        }
    }
    /*
    int pow;
    int HDecHalf[N];
    for(int j = 1;j <= n-m;j++){
        pow = 1;
        HDecHalf[j] = 0;
        for(int i = m;i <= n-m;i++){
            HDecHalf[j] += pow*HOctHalf[i][j];
            pow *= 2;
        }
    }
    */
    int code[N][N];
    int temp;
    for(int i = 0;i <= (int)pow(2,m);i++){
        temp = i;
        for(int j = m;j >= 1;j++){
            code[i][j] = temp%2;
            temp /= 2;
        }
    }

    int codeWord[N][N];
    for(int i = 0;i <= (int)pow(2,m);i++){
        for(int j = 1;j <= m;j++){
            codeWord[i][j] = code[i][j];
        }
    }

    for(int i = 0;i <= (int)pow(2,m);i++){
        for(int j = 1;j <= n-m;j++){
            codeWord[i][j+m] = 0;
            for(int k = 1;k <= m;k++){
                codeWord[i][j+m] += code[i][k]*HOctHalf[k][j];
            }
            codeWord[i][j+m] %= 2;
        }
    }



    int decode[N];
    for(int i = 1;i <= n;i++)
        scanf("%d",&decode[i]);

    int cnt[N];
    for(int i = 0;i <= (int)pow(2,m);i++){
        for(int j = 1;j <= n;j++){
            if((decode[j]^codeWord[i][j]) == 1)
                cnt[i]++;
        }
    }

    int min = cnt[0],minRpos = 0;
    for(int i = 1;i <= (int)pow(2,m);i++){
        if(min < cnt[i]){
            min = cnt[i];
            minRpos = i;
        }
    }

    for(int i = 1;i <= m;i++)
        printf("%d",code[minRpos][i]);
    printf("\n");

    return 0;
}