0

C++ の疑似コード

char* data = new char[determine_size()];
// ... do some stuff with data
delete[] data;
// ... repeat process

したがって、基本的に、データは毎回異なるサイズの新しい配列に繰り返し割り当てられます。ただし、以前の割り当ては常に最初に割り当て解除されます。

これはメモリの断片化につながりますか?

私は C++ でのメモリ管理にあまり詳しくありません。私の直感は、これは良い考えではないと言っています。

4

1 に答える 1

6

あなたが尋ねる、

「これはメモリの断片化につながりますか?」

フラグメンテーションが発生するにはメモリの割り当てが必要ですが、それだけでは十分ではありません。

つまり、割り当てのパターンやメモリマネージャーなど、多くのことに依存します。

述べたように、質問は本当に答えられません。

しかし、まだ良いアドバイスを与えることができます。

生の配列 and を使用しないでください。new代わりに、たとえばstd::vectorandを使用してくださいstd::string

于 2013-01-06T03:58:11.160 に答える