该内存不能written,该内存不能read
[code=C/C++][/code]
for(i=0;i<wide;i++)
{
for(j=0;j<height;j++)
{
lpSrc = p_data + wide * i + j;
lpDst = p_data1+ wide * i + j;
pixel = *lpSrc;
pixel0= *lpDst;
if(pixel<=tr1&&pixel0<=tr2)
{
*(temp1+wide*i+j)=0;
}
else
{
*(temp1+wide*i+j)=255;
}
}
}
memcpy(p_data,temp1, wide*height); //这句出现问题,不能写不能读
前面的代码:
LPBYTE temp1;
memset(temp1,255,wide*height);
LPBYTE p_data;
p_data = GetData();
LPBYTE p_data1;
p_data1 = new BYTE[wide*height];
memcpy(p_data1,p_data,wide*height);
p_data 和 temp1的地址都存在
帮忙看看问题可能出在哪?
[解决办法]
数组的长度不够,访问出界了!
[解决办法]
LPBYTE temp1;
memset(temp1,255,wide*height);
这两行类似于:
BYTE *temp1
memset(temp1, 255, wide*height);
还没分配内存就之间使用了.怎么能这样用呢?
LPBYTE temp1 = new BYTE[wide*height];
[解决办法]
指针没有分配空间~
[解决办法]
LPBYTE temp1; //这个的内存在哪啊,老大
memset(temp1,255,wide*height);
[解决办法]
内存越界
为temp1申请一块内存空间
[解决办法]
这句 p_data = GetData();返回的 p_data 是栈指针还是 new 出来的?如果是 GetData 函数内的局部变量则不正确!另外p_data也要指向一块内存