Qual é o significado deste erro C ++ std :: length_error
-
19-09-2019 - |
Pergunta
Ao executar meu programa, recebo este erro:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
Eu sei que você não pode fazer muito sem o código, mas acho que esse erro está muito profundo no código para copiar tudo. Talvez eu possa descobrir se eu entender o que esse erro significa. Isso é um sinal para um problema com a leitura ou a escrita no endereço de memória errado?
Existe algo que eu possa fazer para obter mais informações sobre o problema do meu programa?
Solução
Isso significa que você tentou criar uma string maior que o std :: string :: max_size ().
http://msdn.microsoft.com/en-us/library/as4axahk(vs.80).aspx
Uma exceção da classe Type Length_error é lançada quando uma operação produz uma corda com um comprimento maior que o tamanho máximo.
Outras dicas
Eu sei que essa é uma pergunta antiga, mas eu apenas encontrei o mesmo problema. Usando Linux com GCC.
Desmontar a função mostrou muitos saltos no código, onde a exceção foi lançada, o que não deveria estar lá. No final, uma construção limpa resolveu o problema para mim.
Este é um erro no modo de depuração com o VS2005. Quando eu o altero para o modo de liberação, tudo funciona.
Bem, o tempo de execução do VC Debug causa isso, isso é tudo.