在C++中,当我使用std::cout
这样的:std :: cout是否完全在堆栈上运行?
std::cout << "myString" << std::endl;
是否有将在堆由性病::法院分配什么?或者std :: cout会在堆栈上做所有事情(这意味着std :: cout及其底层函数不会执行任何new/malloc/etc...
)?
我想知道,如果大量使用的std ::法院可能会导致一些堆碎片
在C++中,当我使用std::cout
这样的:std :: cout是否完全在堆栈上运行?
std::cout << "myString" << std::endl;
是否有将在堆由性病::法院分配什么?或者std :: cout会在堆栈上做所有事情(这意味着std :: cout及其底层函数不会执行任何new/malloc/etc...
)?
我想知道,如果大量使用的std ::法院可能会导致一些堆碎片
这完全取决于基本C++库的某些实现
不能保证'operator <<(std :: ostream&,T)'不会调用'new'。对于任何用户定义的“T”显然都是如此。 – 2012-04-23 17:45:38
你为什么担心堆碎片。你还在做其他事情吗?这是一个令人担忧的问题吗? – 2012-04-23 17:51:32
@LokiAstari我只是出于好奇而问。 – Mesop 2012-04-23 17:59:35