web-dev-qa-db-fra.com

Quelle est la signification de cette erreur C ++ STD :: Longueur_Error

Tout en exécutant mon programme, je reçois cette erreur:

terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create
Abort trap

Je sais que vous ne pouvez pas faire grand chose sans le code, mais je pense que cette erreur est trop profonde dans le code pour copier tout cela. Je peux peut-être comprendre si je comprends ce que cette erreur signifie. Est-ce un signe pour un problème avec la lecture ou l'écriture à la mauvaise adresse mémoire?

Est-ce que je peux faire quelque chose pour obtenir plus d'informations sur le problème de mon programme?

21
Janusz

Cela signifie que vous avez essayé de créer une chaîne plus grande que STD :: String :: max_size ().

http://msdn.microsoft.com/en-us/library/as4axahk (vs.80) .aspx

Une exception de la classe de type Longueur_error est lancée lorsqu'une opération produit une chaîne d'une longueur supérieure à la taille maximale.

24
Kevin Doyon

Je sais que c'est une vieille question mais je viens de courir dans le même problème. En utilisant Linux avec GCC.

La désassemblage de la fonction a montré beaucoup de sauts dans le code, où l'exception a été lancée, ce qui ne devrait pas être là. En fin de compte, une construction propre résolue le problème pour moi.

1
Lukas Obermann

Ceci est une erreur en mode de débogage avec VS2005. Lorsque je le change en mode de sortie, tout fonctionne.

Eh bien, la VC DEBUG RUNTIME LE fait, c'est tout.

0
Kouga