¿Cuál es el significado de este error C ++ std :: longh_error?
-
19-09-2019 - |
Pregunta
Mientras ejecuta mi programa, recibo este error:
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
Abort trap
Sé que no puedes hacer mucho sin el código, pero creo que este error es demasiado profundo en el código para copiar todo. Tal vez pueda resolverlo si entiendo lo que significa este error. ¿Es esto un signo para un problema con la lectura o la escritura en la dirección de memoria incorrecta?
¿Hay algo que pueda hacer para obtener más información sobre el problema de mi programa?
Solución
Significa que intentó crear una cadena más grande que std :: string :: max_size ().
http://msdn.microsoft.com/en-us/library/as4axahk(vs.80).aspx
Se lanza una excepción de la clase de longitud_error de tipo cuando una operación produce una cadena con una longitud mayor que el tamaño máximo.
Otros consejos
Sé que esta es una pregunta antigua, pero me encontré con el mismo problema. Usando Linux con GCC.
Desmontaje de la función mostró muchos saltos en el código, donde se lanzó la excepción, lo que no debería estar allí. Al final, una construcción limpia resolvió el problema para mí.
Este es un error en el modo de depuración con VS2005. Cuando lo cambio al modo de liberación, todo funciona.
Bueno, el tiempo de ejecución de depuración de VC causa esto, eso es todo.