hezhichuang 2013-08-11 02:13 采纳率: 100%
浏览 7689
已采纳

在调用memcpy函数时出现 异常: 0xC0000005: 读取位置 0x006bd000 时发生访问冲突

BOOL Kirsch(BYTE *pData,int Width,int Height)
{//定义实现Kirsch算法的8个模板;
int i,j,s,t,k,max,sum[8];
static int a[3][3]={{+5,+5,+5},{-3,0,-3},{-3,-3,-3}};
static int a1[3][3]={{-3,+5,+5},{-3,0,+5},{-3,-3,-3}};
static int a2[3][3]={{-3,-3,+5},{-3,0,+5},{-3,-3,+5}};
static int a3[3][3]={{-3,-3,-3},{-3,0,+5},{-3,+5,+5}};
static int a4[3][3]={{-3,-3,-3},{-3,0,-3},{+5,+5,+5}};
static int a5[3][3]={{-3,-3,-3},{+5,0,-3},{+5,+5,-3}};
static int a6[3][3]={{+5,-3,-3},{+5,0,-3},{+5,-3,-3}};
static int a7[3][3]={{+5,+5,-3},{+5,0,-3},{-3,-3,-3}};
if(pData==NULL)
{

    AfxMessageBox(L"图像数据为空,请读取图像数据!");
    return FALSE;
}
BYTE *pData1=NULL;
pData1=(BYTE*)new char[Width*Height];
if(pData1==NULL)//图像缓冲数据区pData1不为空;
{
    AfxMessageBox(L"图像缓冲数据区申请失败,请重新申请图像数据缓冲区!");
    return FALSE ;
}
memcpy(pData1,pData, Width*8*Height);//从源src所指的内存地址的起始位置开始拷贝N个字节到目标dest所指的内存地址的起始位置

。。。。。。。。。
每次到这里就出现访存冲突,请教各位大神指点,比较着急,我先在此谢过各位了。。。

  • 写回答

3条回答 默认 最新

  • whizer 2013-11-29 05:27
    关注

    pData1=(BYTE*)new char[Width*Height];
    memcpy(pData1,pData, Width*8*Height);

    pData1申请的内存长度为Width*Height.
    但是你memcpy时,拷贝的内容长度是Width*8*Height,长度超过了申请的长度.内存访问越界.
    所以出错.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里