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
2) j'assigne une chaîne à l'élément vectMyVects d'un objet de type stMyStruct.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
3) Lorsque mon destructeur de stMyStruct est appelé, je reçois une exception sur la désalloc de vectMyVect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::string l_string = "123567890123456"; p_stMyStruct->vectMyVect .push_back(l_string);
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
Partager