11

C では、、、および がmalloc()ありfree()ますrealloc()。C++ にはnew()delete()その配列バージョンがあります。C++realloc関数はありますか? 埋め込みランドにいくつかの低レベルのものを実装していreallocますが、C++ 関数とペアになる関数がないことに気付き、何も欠けていないことを確認したかったのです。新しい別のバッファへの「新しい配置」が最も近いと思いますが、確認したかったのです。

少し離れたところに答えがあるので、質問を少し言い直します。

デバイス レベルの malloc/new/realloc/etc を実装しました。組み込みデバイスの関数を再確認して、私が気付いていなかった C++ realloc 型の関数がないことを確認したかったのです。

4

1 に答える 1

4

いいえ、直接同等のものはありません。実装は自分で行う必要があります。クラスは実際にはサイズを変更すべきではないため、これは実際には問題になりません。移動セマンティクスは、これらのケースのほとんどを処理できます。

ただし、ヘッダー情報 + 末尾に割り当てられたデータを使用するクラスがいくつかあります。これらを「適切に」コーディングするには、この追加の「柔軟な」データを処理するクラスのoperator new()and関数をオーバーライドする必要があります。operator delete()データを「再割り当て」する方法は、ニーズに固有です。

これで質問に答えられない場合は、試みていることの例を投稿してください。

于 2013-06-24T21:40:18.163 に答える