В чем смысл этой ошибки С++ std:: length_error
При запуске моей программы я получаю эту ошибку:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
Я знаю, что вы не можете многое сделать без кода, но я думаю, что эта ошибка слишком глубока в коде, чтобы скопировать все это. Может быть, я смогу понять это, если я пойму, что означает эта ошибка.
Является ли это признаком проблемы с чтением или записью на неправильном адресе памяти?
Есть ли что-то, что я могу сделать, чтобы получить дополнительную информацию о проблеме из моей программы?
Ответы
Ответ 1
Это означает, что вы пытались создать строку больше std::string:: max_size().
http://msdn.microsoft.com/en-us/library/as4axahk(VS.80).aspx
Исключение типа length_error Class бросается, когда операция создает строка с длиной, большей максимальный размер.
Ответ 2
Я знаю, что это старый вопрос, но я столкнулся с одной проблемой.
Использование Linux с gcc.
Разборка функции показала много переходов в коде, где было выбрано исключение, которого не должно быть.
В конце концов, Clean Build решила проблему для меня.
Ответ 3
Это ошибка в режиме отладки с VS2005. Когда я меняю его на режим выпуска, все работает.
Ну, время выполнения отладки vc вызывает это, что все.