图像处理的程序,主函数如下,目的就是要找到二值图上白色的点,统计个数和她的横坐标值:COL定义的是3264
void main()
{
//读入指定BMP文件进内存
char readPath[]="3264乘2448细化.bmp";
readBmp(readPath);

//输出图像的信息
printf("width=%d,height=%d,biBitCount=%d\n",bmpWidth,bmpHeight,biBitCount);
    //循环变量,图像的坐标 
int i,j;
i=bmpHeight;
j=bmpWidth;
//printf("i=%d, j=%d",i,j);


int x1=0;
int b[COL];
//每行字节数
int lineByte=(bmpWidth*biBitCount/8+3)/4*4;
 

//弧线上的点的横坐标
if(biBitCount==8)  //对于灰度图像
for(i=0;i<=bmpHeight;i++)
{ 
for(j=0;j<1550;j++)
{ 
if(*(pBmpBuf+i*lineByte+j)==255)//如果第i行第j列的灰度值为255,即白色
{
        b[x1]=j;//把这个点的j值,即弧线上的纵坐标保存到数组b[]里
        x1=x1+1;//记录下弧线上白色点的个数

}
} 
} 
}
运行后,编译没有问题,就是在DOS下出现这样的结果:“0x0040153c”指令引用的“0x00bcf000”内存。该内存不能为“read”。要是把图片缩小到320*240就能顺利运行了!!!
可能问题是出在指针上了,程序中用到了这个指针:*(pBmpBuf+i*lineByte+j),是不是这个指针用的有问题啊?改了好久不知道怎么办?求高手指点一二吧!!