/ Arduino Uno - C ++、メモリ、メモリ管理、arduinoでfree()がRAMを解放しないのはなぜですか?

なぜfree()が私のArduino Uno - c ++、メモリ、メモリ管理、arduinoでRAMを解放しないのですか?

私は変数を削除して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 それに応じて一方向にのみ移動します 最大 あなたのプログラムが一度に使用するメモリ量。