7

C ++では、次std::coutのように使用しています。

std::cout << "myString" << std::endl;

std :: coutによってヒープに割り当てられるものはありますか?または、std :: coutはスタック上のすべてを実行しますか(つまり、std :: coutとその基礎となる関数は何も実行しませんnew/malloc/etc...)?

std :: coutを多用すると、ヒープの断片化が発生する可能性があるかどうかを知りたい

4

2 に答える 2

7

この特定の例では、コードがヒープに直接割り当てを引き起こしていません。ただし、任意のメソッドの実装で、作業の一部にヒープを使用することは可能です。メソッドの実装がそれ自体の後で適切にクリーンアップする限り、これは完全に問題ありません。

このロジックは、などのメソッドに適用されoperator<<(std::ostream&, T)ます。

于 2012-04-23T17:44:58.917 に答える
5

これは、基本的なC++ライブラリの特定の実装に完全に依存します

于 2012-04-23T17:52:15.327 に答える