本文總結了微控制器C語言幾種記憶體洩露問題,日常專案中碰到的記憶體洩露無非有以下幾種:
(1) 堆記憶體洩漏(Heap leak)。
堆記憶體指的是程式執行中根據需要分配通過malloc,realloc new等從堆中分配的一塊記憶體,再是完成後必須通過呼叫對應的 free或者 刪掉。
如果程式的設計的錯誤導致這部分記憶體沒有被釋放,那麼此後這塊記憶體將不會被使用,就會產生Heap Leak. 這是最常見的記憶體洩露。
(2)系統資源洩露(Resource Leak)。
主要指程式使用系統分配的資源比如 Bitmap,handle ,SOCKET等沒有使用相應的'函式釋放掉,導致系統資源的浪費,嚴重可導致系統效能降低,系統執行不穩定
如果您建立一個可接合的POSIX執行緒,但是忘記聯接它,其資源或私有記憶體一直儲存在程序空間中,從未進行回收再利用。
一定要聯接可接合的執行緒;否則,可能會引起嚴重的記憶體洩漏問題。