数组循环中赋值时,出现错误CXX0030
一个图像处理中的程序的一部分,
int GrayTrans::GenerateMatrix(void){ //释放图像纯数学矩阵的指针 if(m_pImgMatrix!=NULL){ delete []m_pImgMatrix; m_pImgMatrix=NULL; } //分配空间,为了简便,统一采用一维数组 m_nBitCountOut=m_nBitCount; m_imgWidthOut=m_imgWidth; m_imgHeightOut=m_imgHeight; m_pImgMatrix=new unsigned char[m_imgWidthOut * m_imgHeightOut](); //图像每行像素所占字节数,必须是4的倍数 int lineByteOut=(m_imgWidthOut*m_nBitCountOut/8+3)/4*4; //为数组的每一个成员赋值 for(int i=0;i<m_imgWidthOut;i++) for(int j=0;j<m_imgHeightOut;j++) *(m_pImgMatrix+i*m_imgWidthOut+j*m_imgHeightOut)=*(m_pImgData+i*lineByteOut+j);//像素值 return 0;}