4

mallocヒープ内にいくつかの配列があると仮定すると、またはによって構築されても問題ありませんnew。私はそれを拡大するための最も効率的な方法が必要です。つまり、すでに割り当てられたデータの後にある十分な空き領域がある場合、データをそのままにしておくことができます。C ++で維持することは可能ですか?

reallocそのように機能しますか?

4

2 に答える 2

3

はい、reallocあなたが探しているものです。では機能しないことに注意してください。newを使用する必要がありますmalloc(または、などcalloc)。また、メモリを拡張できない場合もあるので、それreallocを実行しようとしますが、それができない場合は、新しいメモリを割り当て、コンテンツを新しい場所にコピーし、古いメモリを解放します。

于 2012-07-24T16:08:17.830 に答える
1

はい、reallocはそのように機能しますが、リンクには保証されていないと記載されていますが、これはメモリが断片化されており、メモリブロックをその場で拡張するための十分なスペースがない場合に当てはまると思います。

于 2012-07-24T16:08:24.950 に答える