2012-02-14 3 views
-3

Firt всего, что я хотел бы сообщить всем, что ostrstream устарел и его не следует использовать в будущем.запрос относительно 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

Почему так много пустых голосов. – Vijay

ответ

1

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

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

+0

@ simon..thanks для уточнения. – Vijay

Смежные вопросы