Bonjour tout le monde,
Je viens avec un problème que je cherche à résoudre.
J'ai un programme de test tout simple avec un std::string dans lequel je mets environ 11k caractères.
je check la mémoire à plusieurs endroits et je m'aperçois que le nombre d'octet occupé ne diminue pas à la destruction de la string.
Problème gênant qu'il n'y a pas avec les char*
voila mon petit code de test:
(memory affiche la memoire en bytes)
Voila ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 std::string & clearing(std::string& str2) { std::string* str = new std::string; str2.swap(*str); str->clear(); delete str; return str2; } int _tmain(int argc, _TCHAR* argv[]) { std::cout << "memory : " << memory() << std::endl; std::string str2("PouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouhPouyouhpouyouh"); std::cout << "memory : " << memory() << std::endl; clearing(str2); std::cout << "memory : " << memory() << std::endl; _getch(); return 0; }
La mémoire augmente constamment. Pas moyen de la faire diminuer. Je pense qu'il s'agit d'un problème d'allocateur de la string, mais aucune idée de leur fonctionnement...memory : 2433024
memory : 2609152
memory : 2621440
Est-ce bien ça?
Quel est la façon de voir la chose pour la stl concernant ce "problème"?
Y a t il moyen de libérer correctement?
Merci
Partager