-3

まず第一に、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;

私の興味のあるコード行は最後の行です。この場合、ポインターを削除する必要がありますか?これは私にはかなり厄介に見えます。手動でのメモリ割り当てはありません。正しい方法で考えていますか?

4

1 に答える 1

1

ポインターはまだ によって所有されていostrstreamます。割り当て解除はエラーです。

ostrstream::str()この場合、所有権が譲渡されるという文書がstr()割り当て機能として機能する場合、それは正しいかもしれません。

于 2012-02-14T05:48:44.693 に答える