在运行我的程序时,我收到此错误:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
我知道没有代码你不能做很多事情,但我认为这个错误在代码中太深了,无法复制所有代码。如果我理解这个错误的含义,也许我可以弄清楚。这是在错误的内存地址读取或写入问题的迹象吗?
我可以做些什么来从我的程序中获取有关该问题的更多信息吗?
在运行我的程序时,我收到此错误:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
我知道没有代码你不能做很多事情,但我认为这个错误在代码中太深了,无法复制所有代码。如果我理解这个错误的含义,也许我可以弄清楚。这是在错误的内存地址读取或写入问题的迹象吗?
我可以做些什么来从我的程序中获取有关该问题的更多信息吗?
这意味着您试图创建一个大于 std::string::max_size() 的字符串。
http://msdn.microsoft.com/en-us/library/as4axahk(VS.80).aspx
当操作生成长度大于最大大小的字符串时,将引发 length_error 类异常。
我知道这是一个老问题,但我遇到了同样的问题。使用带有 gcc 的 Linux。
反汇编函数显示代码中有很多跳转,抛出异常的地方不应该存在。最后,一个干净的构建为我解决了这个问题。
这是 VS2005 调试模式下的错误。当我将其更改为发布模式时,一切正常。
好吧,vc 调试运行时会导致这个,仅此而已。