在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