簡體   English   中英

為什么free()沒有釋放我的Arduino Uno上的RAM

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM