我是C的新手,说实话,我遇到了一些问题。我试图解析一个图像文件,为了做到这一点,我创建了一个应该包含每个像素的数组。这个数组称为jmpr_pixel** pnmPixels
(jmpr_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像素大。
如果有人能帮助调试此问题,我将非常感激。
提前多多感谢!