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

在调用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 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python