malloc
ヒープ内にいくつかの配列があると仮定すると、またはによって構築されても問題ありませんnew
。私はそれを拡大するための最も効率的な方法が必要です。つまり、すでに割り当てられたデータの後にある十分な空き領域がある場合、データをそのままにしておくことができます。C ++で維持することは可能ですか?
realloc
そのように機能しますか?
malloc
ヒープ内にいくつかの配列があると仮定すると、またはによって構築されても問題ありませんnew
。私はそれを拡大するための最も効率的な方法が必要です。つまり、すでに割り当てられたデータの後にある十分な空き領域がある場合、データをそのままにしておくことができます。C ++で維持することは可能ですか?
realloc
そのように機能しますか?
はい、realloc
あなたが探しているものです。では機能しないことに注意してください。new
を使用する必要がありますmalloc
(または、などcalloc
)。また、メモリを拡張できない場合もあるので、それrealloc
を実行しようとしますが、それができない場合は、新しいメモリを割り当て、コンテンツを新しい場所にコピーし、古いメモリを解放します。
はい、reallocはそのように機能しますが、リンクには保証されていないと記載されていますが、これはメモリが断片化されており、メモリブロックをその場で拡張するための十分なスペースがない場合に当てはまると思います。