这是算法:
[color=0000FF](1)首先标记像素矩阵左上角的特征值为 1,然后从上往下 、从左向右扫描像素矩阵 ,如果当前像素为255(空白像素),且该像素相邻八邻域中的上方四邻域(左边 ,左上 ,顶部 ,右上)中有标记 ,则将当前像素标记。若 当前像素为 255,且上方四邻域 中没有标记 1,则用标记 2给予标记 ; 
(2)从下往上、从右向左对像素矩阵进行扫描,若当前像素有标记 2,其下方四邻域(右边、右下 、下边 、左下)中有标记 1,则将其换为标记 1; 
(3)没有标记 1的像素用零(全黑)填充[/color]

我编的程序:
Array=new int [m_imgWidth*m_imgHeight];
memset(Array,0,m_imgWidth*m_imgHeight);

//首先标记左上角的特征值为1
* Array=1;

//左 -〉右,上 -〉下,扫描
for(i=1;i<m_imgHeight+1;i++)
   for(j=1;j<m_imgWidth+1;j++)
  {
   //找到一个白点
   if(*(m_pImgData+i*lineByte+j)==255)
   {
    if(*(Array+i*lineByte+j-1)==1)
    *(Array+i*lineByte+j)=1;
   
     if(*(Array+(i-1)*lineByte+j-1)==1)
        *(Array+i*lineByte+j)=1;
     if(*(Array+(i-1)*lineByte+j)==1)
        *(Array+i*lineByte+j)=1;
     if(*(Array+(i-1)*lineByte+j+1)==1)
        *(Array+i*lineByte+j)=1;
     else
        *(Array+i*lineByte+j)=2;
     }
}
//填充
    for(i=1;i<m_imgHeight;i++)
       for(j=1;j<m_imgWidth;j++){
       if(*(Array+i*lineByte+j)!=1)
    *(m_pImgDataOut+i*lineByte+j)=255;
       else 
    *(m_pImgDataOut+i*lineByte+j)=*(m_pImgData+i*lineByte+j);
    
调试没有错,但是一运行就会终止程序,到底哪出问题了呢?