我用C++编写了程序。我使用“cout”进行调试。一切正常,我删除了调试注释,但是运行程序有问题。当我使用评论时,一切正常。但是,当我删除它们时,程序会启动,允许我写文件名,但是当我按“Enter”键时,会发生错误:
在Pathfinder.exe中0x0142d866处未处理的异常:0xC0000005:访问冲突读取位置0xcccccc70
并打开 xiosbase 头文件,指示
fmtflags __CLR_OR_THIS_CALL flags() const
{ // return format flags
return (_Fmtfl);
}
当我尝试将元素放入Map中时发生错误。仅当在其他函数中删除了调试注释时,才会发生这种情况。
有人可以帮忙吗?
-this 0xcccccc6c {_Stdstr=??? _Mystate=??? _Except=??? ...} const std::ios_base * const
std::_Iosb<int> {...} std::_Iosb<int>
__vfptr CXX0030: Error: expression cannot be evaluated
_Stdstr CXX0030: Error: expression cannot be evaluated
_Mystate CXX0030: Error: expression cannot be evaluated
_Except CXX0030: Error: expression cannot be evaluated
_Fmtfl CXX0030: Error: expression cannot be evaluated
_Prec CXX0030: Error: expression cannot be evaluated
_Wide CXX0030: Error: expression cannot be evaluated
_Arr CXX0017: Error: symbol "" not found
_Calls CXX0017: Error: symbol "" not found
_Ploc CXX0017: Error: symbol "" not found
_Index 0 int
_Sync true bool
最佳答案
值0xcccccc70看起来程序使用了一个未初始化指针的偏移量。
在 Debug模式下,内存中填充有0xcccccccc,以使其更明显。