读书人

string a=b时a原内容有关问题

发布时间: 2012-11-03 10:57:44 作者: rapoo

string a=b时a原内容问题
问个弱智的问题

比如我定义了一个std::string a="12222222223";
再定义b,std::string b="dsf";

当我做a=b;这样的操作时,a原来分配的内存是否会释放?

如果是以下的情况呢,
for(int i=10;i>0;i--)
{

a = new string('r',i);
}
a的赋新值前,是否会释放它的内存?


[解决办法]
顶。这个问题很好,学习了。
其实以前STL只是业务方面的应用,今天看了你的题目才注意到STL内存分配方面的设计。

a的赋新值前,是不会释放它的内存的。一般的sting默认分配的都比你需要的大。当内存不够或者强制缩减内存时调用函数重新分配内存。

[解决办法]

探讨
当我做a=b;这样的操作时,a原来分配的内存是否会释放?

[解决办法]
string不会马上释放内存

读书人网 >C++

热点推荐