0

ポインタの部分メモリを削除する方法はありますか? 例えば

char *c = new char[1000];
sprintf(c,"this is it");

ご覧のとおり、ここでは多くのメモリが浪費されています。必要以上にメモリを解放できますか?

4

3 に答える 3

1

直接ではありません。C++ でできる最善の方法は、適切なサイズの新しいコピーを作成し、古いコピーを削除することです。C の類似物はありませんrealloc

于 2012-08-19T00:08:39.670 に答える
0

お使いのシステムが RAM 制限のある組み込みシステムでない限り、わざわざ気にする必要はありません。巨大なバッファを使用し、「dataLen」int を含めるだけです。

于 2012-08-19T00:12:30.797 に答える
0

データに必要な正確なサイズの別のメモリ ブロックを割り当て、そこにデータをコピーして、元の (非常に大きな) メモリ ブロックを解放します。終わり。

于 2012-08-19T00:33:18.110 に答える