读书人

std:length_error,该如何解决

发布时间: 2012-03-19 22:03:04 作者: rapoo

std::length_error
执行程序时出现:

Microsoft C++ exception: std::length_error at memory location 0x0012f650..

这是内存不足的问题,还是对数组长度操作出界?

[解决办法]
有相关代码吗,什么时候出现的提示,运行中吗
[解决办法]

LZ,你往一个string里读了几M的字符?


[解决办法]

不是操作长度出界(out_of_range),也不是内存不足 (bad_alloc).

length_error这个异常只有在你要表示的字符串的长度过过长, 超出string内在所能表示的最大限制时才抛出.



[解决办法]
因为看不到你的代码, 具体得你自己check一下.

vector, string有一个max_size()函数, 是个上限
一般是假定string, vector有超过这个上限的大小, 做了操作才会length_error.
比如 是不是 basic_string(size, char) size太大, copy(pos,,..) pos传进了负数.等等

读书人网 >C++

热点推荐