我是靠谱客的博主 结实故事,最近开发中收集的这篇文章主要介绍C++“读取位置 0x****** 时发生访问冲突”的可能原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这种错误的意思一般是指访问了不属于自己的内存空间,出现这种错误有几种原因:

 

1、给一个数组分配了比较小的内存空间,然后又给该数组赋了一个比较大的值,举例说明:

 

Cpp代码 
  1. char buf[80];  
  2. buf = "C++“读取位置 0x****** 时发生访问冲突”的可能原因C++“读取位置 0x****** 时发生访问冲突”的可能原因";  

解决方法:给数组分配更大一些的内存空间,如char buf[1000];

 

2、句柄或指针在使用前被释放

解决方法:检查代码配合调试,揪出野指针

 

==========================================================================

 

0xC0000005: 读取位置 0x000df02d 时发生访问冲突
2009-04-08 17:17
    这个错误,我TM找了快一周,终于在今天找到了,原因很简单,但很不容易找,是因为我malloc了一块内存(1000byte),然后我去读文件用的是 ReadFile(hFile,pStr ,fileLength,&dwByteRead,NULL);,这句话有错吗?咋一看上去没错呢,但仔细一看这地方就是有错, 如果fileLength>1000,会有什么结果呢? 总所周知,malloc是在堆上分配的空间,如果ReadFile读成功了,那么会在malloc(1000)以后的(fileLength-1000)的堆上写数据,下一回,如果你用malloc或new在堆上分配内存是他就会出错啦
    就这一个小小的错误,郁闷了快一周,今天解决了,还算可以,没有太大的耽误项目工程的进展,还好还好。
    C和C++中的指针尤其优势,尤其劣势,优势很明显,灵活,方便,使用起来简单;劣势当然也很明显,就是容易导致系统崩溃,指针操作不当,或没有及时释放,或没有判断指针是否越界,或没有及时置空,这些都很容易导致系统崩溃,所以以后使用指针是一定要养成好的习惯,才能准确的使用指针。

最后

以上就是结实故事为你收集整理的C++“读取位置 0x****** 时发生访问冲突”的可能原因的全部内容,希望文章能够帮你解决C++“读取位置 0x****** 时发生访问冲突”的可能原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部