プログラマが割り当てられたブロックの一部を解放できるようにする動的メモリ割り当てシステムが存在するかどうか不思議でした。例えば動的に割り当てられたブロックの一部を解放しますか?
:これは難しい/愚か/賢明である理由について
char* a = malloc (40);
//b points to the split second half of the block, or to NULL if it's beyond the end
//a points to a area of 10 bytes
b = partial_free (a+10, /*size*/ 10)
思考?これを行う方法は?
私はそれが役に立ちそうなようです。
ありがとうございます!
=====一部の研究の末、 の後に、Linuxカーネルのbootmemアロケータがbootmem_free呼び出しでこの操作に類似しているようです。ですから、私は興味があります。なぜブートメムアロケータがこれを許可するのですが、ANSI Cはできませんか?
本質的にあなたがやりたいことをする 'realloc'があります。 – Alexander