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)
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;
}
Voila ce que j'obtiens :
memory : 2433024
memory : 2609152
memory : 2621440
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...

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