c++ - visual studio 中错误消息后的消息是什么意思?

标签 c++ visual-studio-2012

<分区>

所以我正在创建一个多线程 C++ 程序,它返回了这个错误:

Unhandled exception at 0x77e915de in HANASimulationSync.exe: 0xC0000005: Access violation reading location 0x00000020.

顺便说一句,当我在单线程中运行这段代码时,它不会返回任何错误。我只想知道这是什么错误?跟内存管理有关系吗?

最佳答案

这意味着您试图从无效的内存位置读取。在本例中,位置是 0x00000020。由于这只是零以上的一个小偏移量,因此您似乎正在取消引用空指针的偏移量。

因此,如果您有一个成员位于偏移量 0x20 的结构,那么查看此类内容的常见方式是。然后,如果您尝试从指向指针为空的结构的指针读取该成员。使用空指针对数组进行索引时会出现相同的错误。我想你现在明白了。

其他相关信息是导致故障的代码地址。在您的示例中是 0x77e915de。如果您将链接器配置为生成完整的图像映射,您将能够确定是哪一行代码导致了错误。更好的是,如果您生成调试信息,那么您可以附加一个调试器。

一般来说,这种错误称为 segmentation fault ,或访问冲突,或保护错误。这些术语都表示同一件事。

关于c++ - visual studio 中错误消息后的消息是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615923/

相关文章:

C++ cout cin 字符串操作

模板 <char*, char*> 对象的 c++ 排序 vector

visual-studio-2012 - 在 VSPackage 中设置值后如何刷新 Visual Studio 设置

visual-studio - 禁用警告 c4702 似乎不适用于 VS 2012

c++ - 比较迭代器,C++

C++ DWORD* 到 BYTE*

C++——关于我的课本ASCII表的几个问题

vb.net - Visual Studio 2012 Express - 缺少 slider 控件

c++ - libpng 1.616 在 VS2012 C++ 中的 png_read_png 上崩溃

c# - 如何更改 ListView 中 TextBlock 中选定的文本颜色?