[英]Why is free() not freeing up RAM on my Arduino Uno
我試圖通過在使用free()函數后刪除變量來釋放RAM,但我的RAM沒有清理。 我想沒有垃圾清理工作? 在我退出代碼段(帶范圍的if語句,while循環或函數)之后,空格會清空,而不是free()語句本身。
我正在做以下檢查RAM:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
另外,如何“釋放”這樣的記憶?
你不能指望__brkval
只是因為你在一個內存塊上調用了free()
而減少了。 內存塊將被標記為空閑且可供重用,但通常__brkval
將僅根據程序在任何時候使用的最大內存量向一個方向移動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.