平均值法求图像灰度图 运行够调试错误

 double *original_gray(double *R_original_img, double *G_original_img, double *B_original_img)
{
    unsigned long height = 0;
    unsigned long width  = 0;
    height = srcBI.biHeight;
    width = srcBI.biWidth;
    unsigned long h_B = 0;
    unsigned long w_B = 0;
    h_B = height / BSIZE;
    w_B = width / BSIZE;
    unsigned long i = 0;
    unsigned long j = 0;

    double *original_gray_img = NULL;
    original_gray_img = (double *)malloc(height * width * 10);
    for ( i = 0; i < h_B; i++)
    {
        for ( j = 0; j < w_B; j++)
        {
            unsigned long p = 0;
            unsigned long q = 0;
            //double original_gray_pix;
            //original_gray_pix  = (R_original_img[i * w_B * BSIZE * BSIZE + j * BSIZE] +G_original_img[i * w_B * BSIZE * BSIZE + j * BSIZE] +B_original_img[i * w_B * BSIZE * BSIZE + j * BSIZE])/3;

            for ( p = 0; p < BSIZE; p++)
                {
                    for ( q = 0; q < BSIZE; q++)
                    {
                     original_gray_img[i * w_B * BSIZE * BSIZE + p * width + j * BSIZE + q] =(R_original_img[i * w_B * BSIZE * BSIZE + p * width + j * BSIZE + q] +G_original_img[i * w_B * BSIZE * BSIZE + p * width + j * BSIZE + q] +B_original_img[i * w_B * BSIZE * BSIZE + p * width + j * BSIZE + q])/3;// original_gray_pix;
                }
            }
        }   
    }
    return original_gray_img;
}

具体哪一行出错?检查下指针和数组越界