我希望所有人都知道ostrstream已被弃用,不应该在将来使用。
但我怀疑是别的。 我的应用程序的源代码有如下代码。
ostrstream o;
o << cell.value(CI) << "-" << cell.value(LAC) << "-" << cell.value(MNC)
<< "-" << cell.value(MCC) << ends;
char* tmp = o.str();
cgi = tmp;
delete [] tmp;
我感兴趣的代码行是最后一行。 在这种情况下我们是否必须删除一个指针。这对我来说看起来很尴尬。 手动没有内存分配。我以正确的方式思考?
答案 0 :(得分:1)
指针仍归ostrstream
所有。解除分配是错误的。
如果ostrstream::str()
的文档表明所有权已转移,则可能是正确的,在这种情况下,str()
将用作分配函数。