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

在调用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 Acrn IVSHMEM doorbell问题
  • ¥15 yolov5中的val测试集训练时数量变小问题
  • ¥15 MPLS/VPN实验中MPLS的配置问题
  • ¥15 materialstudio氢键计算问题
  • ¥15 echarts图表制作
  • ¥15 halcon根据玻璃面板纹路取区域
  • ¥15 HFSS设计小型化180度耦合器
  • ¥15 使用CInternetSession,CHttpFile读取网页文件时有些电脑上会卡住怎么办?
  • ¥15 水下机器人的半物理仿真研究
  • ¥15 微服务假死,一段时间后自动恢复,如何排查处理