hur.cn - 华软网

 热门搜索

0xC0000005

  作者:未知    来源:网络    更新时间:2011/5/24
各位大虾,小弟的程序是要在VS2008下频繁地查询Oracle数据库,写好以后运行时会时不时的报上面的错误("xxx.exe中的0x7d62159e处未处理的异常:0xC0000005:读取位置0x10008b88时发生访问冲突"),有时又能正常通过,请问这是什么原因啊?本人每一次发贴,希望各位积极回复多给小弟一点信心啊!
---华软 网友回答---
这个好像是越界提示吧?是哪里的数组空间定义小了或者是new了个指针没有及时delete掉?
---华软网友回复---
仔细查看代码
debug方式下定位出错的代码行。
---华软网友回复---
指针越界或者数组溢出了~
---华软网友回复---
多调试几次看看哪里出错了。
---华软网友回复---
c类似的语言编写的程序,一定要注意,数据指针这些越界....
他不象java有越界检查


---华软网友回复---
定位出错的地方,然后看附近的每一个操作buf的地方,有无越界,或者有无指针未检测有效性.
---华软网友回复---
首先多谢各位大侠的关注,我的程序设的断点都不能进去,出错时就进了汇编代码,没法定位啊!不过我要弱弱地问下一楼折大侠,是不是每次new出的指针都要delete掉?这点儿我倒忽略了,因为我定义的都是局部变量啊!
---华软网友回复---
引用 7 楼 why_error 的回复:
首先多谢各位大侠的关注,我的程序设的断点都不能进去,出错时就进了汇编代码,没法定位啊!不过我要弱弱地问下一楼折大侠,是不是每次new出的指针都要delete掉?这点儿我倒忽略了,因为我定义的都是局部变量啊!


new 出来的,在不需要或程序退出的时候,要手动 delete掉,不然程序退出后会有内存泄漏的问题,好象就只这个问题吧...

---华软网友回复---
也可能传过来的指针没判断就使用了? 
---华软网友回复---
各位大大好,不是new的问题,我今天把new出的变量都delete了,还是会有错误,而且我很肯定是数据库的错误,因为在调用堆栈的窗口可以看到是msado15.dll处出错了!不过调试了很久,就是找不到出错的地方,每次都进到汇编代码,而且是随机出现的,郁闷!哪位大侠能救救我啊?
---华软网友回复---
一般都是越界了,你看下你Buffer是不是小了
---华软网友回复---
调试一下,release也能调试。
---华软网友回复---
高手都去哪里归隐了,怎么都没人知道么?
---华软网友回复---
引用 13 楼 why_error 的回复:
高手都去哪里归隐了,怎么都没人知道么?


上面的人都已经说了
---华软网友回复---
生成 Debug 信息再调试,再看调用堆栈,你懂的,
---华软网友回复---
RobertBaker兄,调用堆栈窗口里只能看到是"msado15.dll!4dd17066"或者是"msado15.dll!4dd18aa2"这两个信息,而且是随机出现的,这在我的另一个贴子里面有,可是我还是不懂怎么调试啊
---华软网友回复---
总有函数调用到 msado15.dll 的函数,才会死掉的,

程序里先要有调试信息才可以在调用堆栈看到你自己的函数,
然后出问题以后,往调用堆栈下面看,找找有没有你自己写的函数,就从这个函数找线索。

---华软网友回复---
RobertBaker兄,你说的是对的,调用msado15.dll是我的一个操作数据库类的一个变量,但是我的程序里有几百次的查询数据库,有的是嵌套在循环里的,每次出错都是在这个读写数据库的函数里,可就是定位不了具体的代码!你说的调试信息具体指的是什么啊?
---华软网友回复---
在这里一下子也说不清楚,还是百度一下吧,
---华软网友回复---
指针越界,内存溢出了      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。