首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

std:length_error,该如何解决

2012-03-19 
std::length_error执行程序时出现:MicrosoftC++exception:std::length_erroratmemorylocation0x0012f650..

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传进了负数.等等

热点排行