2012-02-14 2 views
-3

나는 모두에게 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 .. 해명에 감사드립니다. – Vijay