[英]Arduino array memory usage
如果我在全局范圍內聲明一個數組,它將用盡內存來存儲它。 但是,如果我在函數(例如setup()
)中聲明一個數組(我使用兩種類型,一種是char數組,另一種是int數組),則一旦該數組退出數組,該內存就會自動釋放范圍?
我相信這對於某些變量(例如int或byte)會發生。 我只是想知道這是否也適用於數組。
另外,由於我閱讀了包含大量字符串的程序,因此最好將它們存儲在程序空間中,因此請執行諸如
lcd.print("Hello")
函數結束后是否仍然用完“ Hello”字符串的內存(假設打印函數未將其存儲在其他地方)?
關於您的第一個問題:是的。 在函數內部聲明的所有變量僅在函數內部有效,直到函數返回並隨后自動釋放。 這具有一些含義:
在變量超出范圍后,例如,在函數返回之后, 不得使用指向本地聲明的變量的指針。 ( 不要返回一個指針從函數的局部陣!) -然而perfecly法律從聲明塊/函數內調用它們時該指針傳遞給其他的功能。
局部變量存儲在本地堆棧上,因此在調用該函數時,需要留有足夠的空間,以便堆棧可以增加相應的字節數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.