25

在运行我的程序时,我收到此错误:

terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create
Abort trap

我知道没有代码你不能做很多事情,但我认为这个错误在代码中太深了,无法复制所有代码。如果我理解这个错误的含义,也许我可以弄清楚。这是在错误的内存地址读取或写入问题的迹象吗?

我可以做些什么来从我的程序中获取有关该问题的更多信息吗?

4

3 回答 3

27

这意味着您试图创建一个大于 std::string::max_size() 的字符串。

http://msdn.microsoft.com/en-us/library/as4axahk(VS.80).aspx

当操作生成长度大于最大大小的字符串时,将引发 length_error 类异常。

于 2009-07-26T04:13:22.763 回答
0

我知道这是一个老问题,但我遇到了同样的问题。使用带有 gcc 的 Linux。

反汇编函数显示代码中有很多跳转,抛出异常的地方不应该存在。最后,一个干净的构建为我解决了这个问题。

于 2013-07-25T10:12:37.610 回答
-1

这是 VS2005 调试模式下的错误。当我将其更改为发布模式时,一切正常。

好吧,vc 调试运行时会导致这个,仅此而已。

于 2011-05-05T03:00:45.837 回答