Flying_Spider 2016-04-04 03:21
浏览 757

C++,为一个二维数组赋值,为什么到一半就停止了?

int preprocessing(char strFile[],IMAGEDATA imagedata,PIXEL **imagepixel,long *wid,long *hei)
{
FILE *fpi;
imagedata= NULL;//动态分配存储原图片的像素信息的二维数组
long *width,*height;//新定义一个像素结构体二维数组
width=wid;height=hei;
fpi=fopen(strFile,"rb");

if(fpi != NULL){

//先读取文件类型

WORD bfType;

fread(&bfType,1,sizeof(WORD),fpi);

if(0x4d42!=bfType)

{

cout<<"the file is not a bmp file!"<<endl;

return NULL;

}

//读取bmp文件的文件头和信息头

fread(&strHead,1,sizeof(tagBITMAPFILEHEADER),fpi);

showBmpHead(strHead);//显示文件头

fread(&strInfo,1,sizeof(tagBITMAPINFOHEADER),fpi);

showBmpInforHead(strInfo);//显示文件信息头

//读取调色板

for(unsigned int nCounti=0;nCounti<strInfo.biClrUsed;nCounti++)

{

fread((char *)&(strPla[nCounti].rgbBlue),1,sizeof(BYTE),fpi);

fread((char *)&(strPla[nCounti].rgbGreen),1,sizeof(BYTE),fpi);

fread((char *)&(strPla[nCounti].rgbRed),1,sizeof(BYTE),fpi);

fread((char *)&(strPla[nCounti].rgbReserved),1,sizeof(BYTE),fpi);

}

width = &strInfo.biWidth;

height = &strInfo.biHeight;

//图像每一行的字节数必须是4的整数倍

*width = ((*width) * sizeof(IMAGEDATA) + 3) / 4 * 4;
*wid=*width;
*hei=*height;
imagedata = (IMAGEDATA
)malloc((*width) * (*height) * sizeof(IMAGEDATA));

imagepixel=(PIXEL**)malloc(sizeof(PIXEL*)*(*height));
for(int w=0;w<(*height);w++)
{
imagepixel[w]=(PIXEL*)malloc(sizeof(PIXEL*)*(*width));
}
//初始化原始图片的像素数组以及新构造的像素数组

for(int i = 0;i < (*height);++i)

{

for(int j = 0;j < (*width);++j)

{

(*(imagedata + i * (*width )+ j)).blue = 0;
imagepixel[i][j].blue = 0;//系统提示这一句;
imagepixel[i][j].tag = 0;
imagepixel[i][j].t = i * (*width )+ j;
}

}

//fseek(fpi,54,SEEK_SET);

//读出图片的像素数据

fread(imagedata,sizeof(struct tagIMAGEDATA) (*width),(*height),fpi);

fclose(fpi);
for(i = 0;i <(*height);++i)

{

for(int j = 0;j < (*width);++j)

{

imagepixel[i][j].blue=(
(imagedata + i * (*width) + j)).blue;
}
}

processingpixel(imagedata,imagepixel,width,height);//对像素操作

}

else

{

cout<<"file open error!"<<endl;

return NULL;

}
fclose(fpi);
afterprocessing(imagedata,width,height);
return 0;
}
![![图片说明](https://img-ask.csdn.net/upload/201604/04/1459740049_603489.png)图片说明](https://img-ask.csdn.net/upload/201604/04/1459740034_302021.png)图片说明

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!