Hi Everybody,

I have a problem with string stl from visual studio (2005, 2008 and 2010). In my program, memory grows up to 1Gb.
I create a little program that reproduce that:

void main(void)
{
std::string strCtn = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

std::string str;
while( str != "bk" )
{
if( str != " " )
{
std::string strTemp;
while( str != "bk" )
{
std::cout << "Enter \"bk\" to exit loop (1/2) [size=" << strTemp.size() << "]" << std::endl;
std::cin >> str;
strTemp += strCtn;
}
}
std::cout << "Enter \"bk\" to exit loop (2/2)" << std::endl;
std::cin >> str;
}
std::cout << "Enter a key to end program" << std::endl;
std::cin >> str;
}

When I enter severals time in the second loop, memory grows. But when I exit the loop, memory is not free. I enter again several times in the second loop, I must loop more than the previous time to see memory up.
It seems stl string manage its own memory, but when memory up to 1Gb, it becomes a problem, my program crash.

How can I force stl free memory ?

thanks in advanced