C++“读取位置 0x****** 时发生访问冲突”的可能原因
2010-12-10 01:42
357 查看
这种错误的意思一般是指访问了不属于自己的内存空间,出现这种错误有几种原因:
1、给一个数组分配了比较小的内存空间,然后又给该数组赋了一个比较大的值,举例说明:
Cpp代码
char buf[80];
buf = "C++“读取位置 0x****** 时发生访问冲突”的可能原因C++“读取位置 0x****** 时发生访问冲突”的可能原因";
解决方法:给数组分配更大一些的内存空间,如char buf[1000];
2、句柄或指针在使用前被释放
解决方法:检查代码配合调试,揪出野指针
==========================================================================
0xC0000005: 读取位置 0x000df02d 时发生访问冲突
2009-04-08 17:17
1、给一个数组分配了比较小的内存空间,然后又给该数组赋了一个比较大的值,举例说明:
Cpp代码
char buf[80];
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****** 时发生访问冲突”的可能原因
- C++“读取位置 0x****** 时发生访问冲突”的可能原因
- C/C++ 错误处理(文档):未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- Demo.exe 中的 0x10001fdd 处最可能的异常: 0xC0000005: 读取位置 0x0000001c 时发生访问冲突
- C/C++ 错误处理(文档):未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- c++中使用基类指针Vector 存放子类对象(0xcccccccc 处未处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突 )
- C++读取XXX位置时发生访问冲突的一种情况
- 关于 xxxx.exe 中的 0xxxxxxxx 处最可能的异常: 0xC0000005: 读取位置 0xxxxxxxx 时发生访问冲突
- 0xC0000005: 读取位置 0x0000001c 时发生访问冲突 的原因
- xxx.exe 中的 0x005d93af (sss.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- 【语言-C++】Image - .exe 中的 0x0043a998 处有未经处理的异常: 0xC0000005: 读取位置 0x029d846c 时发生访问冲突
- 关于 xxxx.exe 中的 0xxxxxxxx 处最可能的异常: 0xC0000005: 读取位置 0xxxxxxxx 时发生访问冲突
- 0xC0000005: 读取位置 0x6C6C6568 时发生访问冲突的原因及解决方法
- acad.exe 中的 0x25c70fc2 (???.arx) 处最可能的异常: 0xC0000005: 读取位置 0x0000009c 时发生访问冲突
- 程序运行时 0xC0000005: 读取位置 0x00000000 时发生访问冲突 ,可能是 com 组件引入各种问题
- 【vs调试】C/C++ 错误处理(文档):未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
- 【C/C++】【FAQ】【内存泄露】未处理的异常:0xC0000005:读取位置0xabababab时发生访问冲突
- 0xC0000005: 读取位置 0x00000000 时发生访问冲突