【问题标题】:Explicitly free memory underlying C++ iostream显式释放 C++ iostream 底层内存
【发布时间】:2013-06-17 18:27:20
【问题描述】:

我正在编写一个 C++ 应用程序,它使用 iostream 实例从 Web 服务中积累和消化大量二进制数据 (10M+)。流是首选的原因有几个,但其中最重要的是易于与基于流的第三方 API 集成,而在类型之间转换时不需要内存中的副本。

当我消化完数据后,我想显式释放 iostream 实例下的内存。我确信当实例超出范围时内存会被释放,但由于我将它传递给 API,我不确定它是否会得到有效处理。如果我使用的是字符串流,我可以调用std::stringstream.clear(); std::stringstream.str(std::string());。有没有类似的方法来显式“重置”一个 iostream?

提前致谢。

【问题讨论】:

  • 您使用的是什么 API?使用流的情况如何?
  • libcURL。该流在调用“执行”之前作为选项传递给 cURL 句柄,并填充 HTTP 响应。
  • 什么是“iostream 实例”?一个 fstream?
  • @Casey:“一个 iostream 的实例”,也是“一个 iostream”。例如:std::iostream my_stream;
  • 显然我是个白痴,我说服自己std::iostream 是抽象的。我现在就闭嘴。

标签: c++ memory-management iostream


【解决方案1】:

解决方案是使用std::stringstreamstd::iostream 对象将被抽象为执行。

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 2010-10-19
    • 2011-02-12
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2020-09-10
    相关资源
    最近更新 更多