私は変数を削除してRAMを解放しようとしていますfree()関数で使用された後、私のRAMはクリーンアップされません。私はゴミ掃除が行われていないと思いますか?スペースは、コードのセクション(スコープ付きのif文、whileループまたは関数)を終了した後に消去されますが、free()文自体は消去されません。
私はRAMをチェックするために以下のことをしています:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
さらに、そのような記憶をどのように "フリー"にするのだろうか?
回答:
回答№1の場合は7あなたは、 __brkval
あなたが電話しただけで減少する free()
単一のメモリブロック上にある。メモリブロックは マークされた 無料で再利用可能ですが、一般的には __brkval
それに応じて一方向にのみ移動します 最大 あなたのプログラムが一度に使用するメモリ量。