Что означает эту ошибку c ++ std :: length_error
-
19-09-2019 - |
Вопрос
Во время запуска моей программы я получаю эту ошибку:
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
Исключение класса Type Length_Error бросается, когда операция создает строку с длиной, превышающей максимальный размер.
Другие советы
I know this is a old question but I just ran into the same issue. Using Linux with gcc.
Disassembling the function showed a lot of jumps in the code, where the exception was thrown, which shouldn't be there. In the end, a Clean Build resolved the issue for me.
This is an error in debug mode with VS2005. When I change it to release mode, everything works.
Well, the vc debug runtime causes this, that's all.