C中的EXC_BAD_ACCESS,我无法理解,调试或修复

时间:2016-11-19 18:57:43

标签: c arrays image exc-bad-access allocation

我是C的新手,说实话,我遇到了一些问题。我试图解析一个图像文件,为了做到这一点,我创建了一个应该包含每个像素的数组。这个数组称为jmpr_pixel** pnmPixelsjmpr_pixel是我在类的头文件中定义的结构)。我使用以下代码分配此数组所需的内存:

pnmPixels = malloc(pnmSize.height * sizeof(jmpr_Pixel));
for (i=0; i<pnmSize.height; i++) 
{
    pnmPixels[i] = malloc(pnmSize.width * sizeof(jmpr_Pixel));
    if (pnmPixels[i] == NULL) 
    {
        printf("An error occured while allocating memory.");
    }
}

稍后,我使用pnmPixels[row][column] = pixel为数组赋值,后者是jmpr_pixel - 结构。当我运行代码时,看似随机的值会出现错误(EXC_BAD_ACCESS (code=EXC_I386_GPFLT):

row = 448
column = 0

图片是5390倍1133像素大。

如果有人能帮助调试此问题,我将非常感激。

提前多多感谢!

0 个答案:

没有答案