aam*_*nye 0 c++ visual-studio-2012
所以我正在创建一个多线程C++程序,它返回此错误:
HANASimulationSync.exe中0x77e915de处的未处理异常:0xC0000005:访问冲突读取位置0x00000020.
顺便说一句,当我在一个线程中运行此代码时,它不会返回任何错误.我想知道这是什么类型的错误?它与内存管理有关吗?
Dav*_*nan 14
这意味着您试图从无效的内存位置读取.在这种情况下,位置是0x00000020.由于这只是一个高于零的小偏移,似乎您可能正在从空指针取消引用偏移量.
因此,看到类似这样的东西的常见方法是,如果你有一个带偏移成员的结构0x20.然后,如果您尝试从指向指针为null的结构的指针读取该成员.并且您将使用空指针将相同的错误索引到数组中.我想你现在明白了.
其他相关信息是导致故障的代码地址.在你的例子中0x77e915de.如果将链接器配置为生成完整的映像映射,则可以识别导致该错误的代码行.更好的是,如果您生成调试信息,那么您可以附加调试器.
一般而言,这种错误称为分段错误,访问冲突或保护错误.这些术语都意味着同样的事情.