私が次のものを持っているとしましょう:
std::string TestFragmentation()
{
std::vector<char> buffer(500);
SomeCApiFunction( &buffer[0], buffer.size() ); // Sets buffer to null-terminated string data
return &buffer[0];
}
ヒープにメモリを割り当てる上記のベクトルは、メモリの断片化の原因になりますか?断片化についての私の理解は、より大きく、より短期間の割り当ての間に、小規模で長期的な割り当てがある場合にのみ実際に発生するということです(またはその逆)。
この状況を時期尚早に最適化したくないので、このようなコードの一般的な考え方を聞きたいと思います。さまざまな専門家がスタックに大きなバッファを置くことを推奨していないことを知っています(結局のところ、それがヒープの目的です)。そのため、このようなコードを書くときに最初に考えるのは通常それです。断片化は通常、分析が必要なものです。私の心の状態はここにあるべきですか?