【发布时间】:2014-09-14 14:58:00
【问题描述】:
与在堆上分配内存的std::string 和std::ofstream 相比,包含std::cout 的程序似乎没有任何堆分配。我知道std::ostreams 继承了xalloc、iword 和pword。后两者有描述说他们确实有某种内存管理。
首先,分配或调整私有存储(long 的动态数组) 或其他可索引的数据结构)足以使索引 有效索引,然后返回对长元素的引用 带有索引索引的私有存储。
但 valgrind 似乎表明没有任何堆分配。
- 什么时候发生这种分配/调整大小?
-
std::ostreams 内部使用 new 和 delete 还是 malloc 和 free?
【问题讨论】:
-
我假设
std::ostream让它内部的std::streambuf为缓冲区做实际的内存管理。