Access Violation是什么意思?

justforEE 2011-04-19 09:55:51
Unhandled Exception in connection.exe: oxc0000005: access violation

出错的语句:
*(m_pdib3+(y+bmpHeight-j)*lineByte+i)=*(m_pdib1+j*lineByte+i);

m_pdib3 和 m_pdib1都是一个指针,在头文件里的定义如下:
unsigned char *m_pdib3;
unsigned char *m_pdib1;


y i bmpheight linebyte均是整型变量,已赋值。

出错时这些变量的值分别为:

m_pdib3 == 0x01f9d5b8
m_pdib1 == 0x01f80068
y == 262
j == 150
i == 0
bmpheigh == 150
linebyte == 600
...全文
551 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kattyhello 2012-11-24
  • 打赏
  • 举报
回复
怎样改正这个错误呢?
King_hhuang 2011-04-19
  • 打赏
  • 举报
回复
“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:  一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。  二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。

指针越界很容易理解,你给他分配了内存,访问时却超出了这篇内存,就越界啦
就行你定义数组长度为10,你去访问下标为10、或者11的数组成员,就是越界
justforEE 2011-04-19
  • 打赏
  • 举报
回复
我看谢凤英的《VC++图像处理》上有这种用法,我就搬过来改写了指针里的内容。

请问什么叫指针越界,什么叫野指针啊?

有没有哪位大侠能告诉我怎么解决?
xiaoguailong3 2011-04-19
  • 打赏
  • 举报
回复
野指针或者越界访问
Eleven 2011-04-19
  • 打赏
  • 举报
回复
指针越界了吧
踏实每一步 2011-04-19
  • 打赏
  • 举报
回复
Set the Just-in-time debugging option and run your program standalone until the access violation occurs. Then, in the Access Violation dialog box, you can click Cancel to start the debugger.

King_hhuang 2011-04-19
  • 打赏
  • 举报
回复
Access Violation(非法访问),没见过你这么用指针的
你要干嘛?
tanke2000 2011-04-19
  • 打赏
  • 举报
回复
Unhandled Exception in connection.exe: oxc0000005: access violation
指内存访问非法。一般造成此类现象的原因:数组越界,野指针乱指

解决方法,VC6.0中使用 View->Debug Windowns->Memory,Viriable共同解决
前者用来查看内存,后者用来查看变量。你可以吧oxc0000005放到View->Debug Windowns->Memory
看一下是那个变量造成的,然后顺藤摸瓜的查。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧