ポインタの部分メモリを削除する方法はありますか? 例えば
char *c = new char[1000];
sprintf(c,"this is it");
ご覧のとおり、ここでは多くのメモリが浪費されています。必要以上にメモリを解放できますか?
ポインタの部分メモリを削除する方法はありますか? 例えば
char *c = new char[1000];
sprintf(c,"this is it");
ご覧のとおり、ここでは多くのメモリが浪費されています。必要以上にメモリを解放できますか?
直接ではありません。C++ でできる最善の方法は、適切なサイズの新しいコピーを作成し、古いコピーを削除することです。C の類似物はありませんrealloc
。
お使いのシステムが RAM 制限のある組み込みシステムでない限り、わざわざ気にする必要はありません。巨大なバッファを使用し、「dataLen」int を含めるだけです。
データに必要な正確なサイズの別のメモリ ブロックを割り当て、そこにデータをコピーして、元の (非常に大きな) メモリ ブロックを解放します。終わり。