string 内存分配问题
刚转到C++,对C++的内存分配这块有些疑问,如下面代码所示,最后输出结果是0123456789101112131415161718192021222324252627282930313233343536373839,请问string a存活多长时间,如果是getStr结束就结束的话为什么b的值不一起跟着清空。如果不是的话为什么没有及时释放,局部变量不是随着作用域结束而结束吗,这样的方法多了会不会有内存泄露呢?谢谢各位啊。
string getStr(int j){
string a;
for(int i=0;i<j;i++){
stringstream ss;
ss<<i;
a.append(ss.str());
}
return a;
}
int main() {
cout << "Hello World!!!" << endl; // prints Hello World!!!
string b=getStr(40);
cout<<b<<endl;
return 0;
} string 内存分配 生命周期
[解决办法]