编译运行都没有问题,函数运行到中途就自动结束了程序,小白一个求指教,会报with return value 3221225477

#include

struct TU{
int h,l;
};

int mmax(int x,int y)
{
if(x>y) return x;
else return y;
}

int max(int a,int b,int c,int d)
{
int m;
m=mmax(a,b);
m=mmax(m,c);
m=mmax(m,d);
return m;
}

void koko(struct TU *a,int b[15][10],int c){
int k=0,i=0,j,m[4],n,q[4];
for(k=0;k<4;k++){
a[k].l=a[k].l+(c-1);
printf("q=%d\n",q[k]);
}//最后运行在这里结束
for(k=0;k<4;k++){
for(i=0;i<16;i++){
if(b[i][a[k].l]==1){
m[k]=i;
break;//
}
}
}
n=max(m[1],m[2],m[3],m[0])-1;

for(k=0;k<4;k++){
    b[n-a[k].h][a[k].l]=1;
}

}

void main(){
struct TU fang[4]={0};
struct TU fangg;
fangg=&fang;
int a[15][10];
int b[4][4];
int i,j,k=0;
int begin;
scanf("%d",&begin);
FILE
fp1=fopen("eluosia.txt","r");
FILE* fp2=fopen("eluosib.txt","r");
if(fp1==NULL&&fp2==NULL){
printf("无文件");
return -1;
}
for(i=0;i<15;i++){
for(j=0;j<10;j++){
fscanf(fp1,"%d",&a[i][j]);
}
fscanf(fp1,"\n");
}
fclose(fp1);
for(i=0;i<4;i++){
for(j=0;j<4;j++){
fscanf(fp2,"%d ",&b[i][j]);
}
fscanf(fp2,"\n");
}
fclose(fp2);/*
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(b[i][j]==1){
fang[k].h=i;
fang[k].l=j;
printf("%d%d\n",fang[k].h,fang[k].l);
k++;
}
}
}

koko(fangg,a[15][10],begin);

for(i=0;i<15;i++){
    for(j=0;j<10;j++){
        printf("%d",a[i][j]);
    }
    printf("\n");
}

}