2013-06-20 72 views
2

我在寫一個C++應用程序,它使用一個iostream實例從Web服務中累積和消化大量的二進制數據(10M +)。該流首選的原因有幾個,但其中最重要的是便於與基於第三方的基於流的API集成,而不需要在類型之間轉換時的內存中副本。顯式釋放內存底層C++ iostream

當我完成消化數據時,我想明確釋放iostream實例下的內存。我確信當實例超出範圍時,內存將被釋放,但是由於我將它傳遞給API,我不確定它會被有效處理。如果我使用的是stringstream,我可以撥打std::stringstream.clear(); std::stringstream.str(std::string());。有沒有類似的方式來顯式「重置」iostream?

在此先感謝。

+0

你在使用什麼API?它如何使用流? – templatetypedef

+0

libcURL。在調用'perform'之前,該流作爲選項傳遞給cURL句柄,並填充HTTP響應。 – kseier

+0

什麼是「iostream實例」? fstream? – Casey

回答

0

解決方法是使用std::stringstreamstd::iostream對象將被抽象爲推理。