Bonjour à tous
J'ai un pb "Debug Assertion Failled" sur un vecteur, mais ca me semble un peu tordu :
1) Je défini une structure contenant entre autre un vecteur de string
Code :
- typedef struct stMyStruct
- {
- std::string strId;
- std::vector<std::string> vectMyVect;
- stMyStruct()
- {
- strId.reserve (255);
- vectMyVect.reserve (10);
- };
- }stMyStruct;
|
2) j'assigne une chaîne à l'élément vectMyVects d'un objet de type stMyStruct.
Code :
- std::string l_string = "123567890123456";
- p_stMyStruct->vectMyVect .push_back(l_string);
|
3) Lorsque mon destructeur de stMyStruct est appellé, je reçois une exception sur la désalloc de vectMyVect.
PAR CONTRE si en 2) je prend une chaîne de <= 15 char, ex "123567890123456", là ça passe.
Je pense donc que cela à un lien avec la capacity de la std::string dans le vecteur, mais là je bloque.
Quelqu'un pourrait t'il m'expliquer ce qui se passe, et (surtout) comment puis je utiliser des chaînes de plus de 15 char sans planter ?
Message édité par Sagoth le 10-10-2008 à 20:14:16