用vs跑c时遇到的报错

用vs跑程序时遇到这样一个报错,相同的程序在别人那就能跑,在我这就会报错,想请问一下这个该怎么改

img

#pragma warning(disable:4996);
#include 
#define SIZE 39208361 


int main(void)
{
    //一、读取数据 
    FILE *fp;
    int i = 0, j = 0, k = 0;
    fp = fopen("C:\\Users\\LEGION\\Desktop\\5nweights.txt", "r");//以只读形式打开D盘的test.bin文件,文件地址储存在指针fp中
    if (fp == NULL)
    {
        printf("failed.\n");
        return 1;
    }
    unsigned char a[SIZE];//unsigned char型占一个字节
    int b[50000];
    float c[5000];

    fread(a, 1, SIZE, fp);//第一维是列数,第二维是行数 
    //将fp指针指向的文件写入image数组中,文件中元素的个数为SIZE*SIZE*3,每个元素占1个字节
    fclose(fp);
    /*
    for (i = 0; i < 200; i++)
        printf("%c", a[i]);

    printf("  %c", a[199]);*/


    for (i = 0; i < 39208361; i++)
    {

        while (a[i] >= '0' && a[i] <= '9' || a[i] == '.' || a[i] == '-')
        {

            b[j] = a[i] - '0';
            //printf("%d",b[j]);
            j++;
            //printf("%c", a[i]);
            i++;
        }
        //printf("j = %d\n", j);

        switch (j) {
        case 0:
            break;
        case 1:
            if (b[0] == -2)//排除第一个是.
                break;
            c[k] = b[0]; //printf("c = %f\n", c[k]); 
            k++;
            break;
        case 2:
            c[k] = 10 * b[0] + b[1]; //printf("c = %f\n", c[k]);
            k++;  break;
        case 3:
            if (b[0] == -2)//排除第一个是.
                break;
            c[k] = 100 * b[0] + 10 * b[1] + b[2]; //printf("c = %f\n", c[k]);
            k++;  break;

        default:
            if (b[1] == -3)//排除很多-的情况
                break;
            if (b[0] == -2)//排除第一个是.
                break;
            if (b[0] == -3)//有负号
                //for (l = 6; l < j; l++) 
            {
                c[k] = -(b[1] + 0.1*b[3] + 0.01*b[4] + 0.001*b[5] + 0.0001*b[6] + 0.00001*b[7] + 0.000001*b[8]);//小数点后六位
                //printf("%f\n",c[k]);
            }
            else {
                c[k] = b[0] + 0.1* b[2] + 0.01*b[3] + 0.001*b[4] + 0.0001*b[5] + 0.00001*b[6] + 0.000001*b[7] + 0.0000001*b[8];//小数点后七位
                //printf("%f\n",c[k]);
            }
            k++;
            break;
        }

        j = 0;
    }
    for (i = 0; i < 1733; i++)
    {
        printf("%f\n", c[i]);
    }
}

是不是数组越界了,检查下那一行所有的数组的下标