c++ - VC++ 中的异常错误 c0000005

标签 c++ visual-c++ exception crash access-violation

正在开发 VC++ 控制台应用程序。

此应用程序从 Appdata\Roaming 文件夹发送文件一段时间。

发生的情况是出现此崩溃错误:

Problem signature:
Problem Event Name: APPCRASH
Application Name:   App.exe
Application Version:    1.0.0.2
Application Timestamp:  51c02fa8
Fault Module Name:  PCMeter.exe
Fault Module Version:   1.0.0.2
Fault Module Timestamp: 51c02fa8
Exception Code: c0000005
Exception Offset:   000069eb
OS Version: 6.1.7601.2.1.0.256.48
Locale ID:  1033
Additional Information 1:   0a9e
Additional Information 2:   0a9e372d3b4ad19135b953a78882e789
Additional Information 3:   0a9e
Additional Information 4:   0a9e372d3b4ad19135b953a78882e789

谁能帮我解决这个问题

最佳答案

异常代码c0000005是访问冲突的代码。这意味着您的程序正在访问(读取或写入)它没有权限的内存地址。最常见的原因是:

  • 访问过时的指针。那是访问已经被释放的内存。请注意,此类陈旧指针访问并不总是会导致访问冲突。仅当内存管理器将内存返回给系统时,您才会遇到访问冲突。
  • 读取数组末尾。这是当您有一个长度为 N 的数组并且您访问索引为 >=N 的元素时。

要解决该问题,您需要进行一些调试。如果您无法在开发计算机上的调试器下发生故障,您应该获取故障转储文件并将其加载到调试器中。这将使您能够看到代码中出现问题的位置,并有望引导您找到解决方案。您需要将调试符号与可执行文件关联起来才能看到有意义的堆栈跟踪。

关于c++ - VC++ 中的异常错误 c0000005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17168982/

相关文章:

c - Visual C++ 2010/2008 在 C 模式下不接受 `__int64`

java - 为什么我可以覆盖一些抛出异常的方法而我不能覆盖其他方法?

c++ - 无法弄清楚为什么我的程序在条件不为真时执行 if 语句(数组)

c++ - 如何从一个lua函数调用另一个lua函数?

c++ - 在 CMake 中处理多个项目

mysql - Mono MySQL.Data 6.9 打开 NotImplementedException

c# - .NET Remoting 异常未在客户端处理

c++ - CreateFont API 质量

c++ - 结构静态成员含义/定义

c# - 将非托管/非托管成员添加到托管类