запрос относительно ostrstream - PullRequest
0 голосов
/ 14 февраля 2012

Я хочу сообщить всем, что 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;

строка кода, которая меня интересует, является последней строкой.мы должны удалить указатель в этом случае. это выглядит довольно неловко для меня.нет распределения памяти вручную. Я думаю, что правильно?

1 Ответ

1 голос
/ 14 февраля 2012

Указатель по-прежнему принадлежит ostrstream. Распределение это по ошибке.

Может быть правильным, если в документации для ostrstream::str() указано, что право собственности передается, в этом случае str() будет выполнять функцию распределения.

...