이 C ++ 오류의 의미는 무엇입니까 std :: longth_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
유형 길이 _error 클래스를 제외하고 작업이 최대 크기보다 큰 길이의 문자열을 생성 할 때 발생합니다.
다른 팁
나는 이것이 오래된 질문이라는 것을 알고 있지만 나는 단지 같은 문제에 부딪쳤다. GCC와 함께 Linux 사용.
이 기능을 분해하면 코드에서 예외가 발생 된 코드에서 많은 점프가 나타났습니다. 결국, 깨끗한 빌드가 문제를 해결했습니다.
이것은 VS2005의 디버그 모드에서 오류입니다. 릴리스 모드로 변경하면 모든 것이 작동합니다.
글쎄, VC 디버그 런타임은 이것을 일으킨다.
제휴하지 않습니다 StackOverflow