Excep sur ~ d'un vecteur de string de taille > 15 (capacity ?)
Bonjour à tous :hello:
J'ai un pb "Debug Assertion Failled" sur un vecteur (env. MVS2005), mais ça me semble un peu tordu :
1) Je défini une structure contenant entre autre un vecteur de string
Code:
1 2 3 4 5 6 7 8 9 10
| 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:
1 2
| std::string l_string = "123567890123456";
p_stMyStruct->vectMyVect .push_back(l_string); |
3) Lorsque mon destructeur de stMyStruct est appelé, 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 ?
:( :(
PS: je précise que j'ai déjà tenté un .reserve sur la string avant de la donner au vecteur, mais même conséquence