[發明專利]一種動態內存分配方法在審
| 申請號: | 202110734591.5 | 申請日: | 2021-06-30 |
| 公開(公告)號: | CN113419858A | 公開(公告)日: | 2021-09-21 |
| 發明(設計)人: | 葉德焰;任賦;林雅;許學澤 | 申請(專利權)人: | 明見(廈門)技術有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 廈門市精誠新創知識產權代理有限公司 35218 | 代理人: | 蔡金塔 |
| 地址: | 361000 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 動態 內存 分配 方法 | ||
本發明涉及一種動態內存分配方法,其可包括以下步驟:定義節點頭信息,節點頭信息包括節點的已使用長度ulen和next指針;內存初始化,將內存池初始化成僅有開始節點和末尾節點的單向鏈表結構;內存分配,從開始節點開始查找剩余的空間長度大于申請內存的長度的節點,找到后判斷該節點的ulen是否等于0,若是,則將該節點的ulen的值改為申請內存的長度,否則在該節點后創建一個新節點,并將該節點的next指針指向新節點;內存釋放,當釋放內存時,若釋放的是開始節點,則只要將開始節點的ulen賦值為0即可,否則只需要將的前一節點的next指針指到下一節點即可。本發明無需進行復雜運算,僅需對參數ulen和next指針進行操作,執行代碼簡單,效率高。
技術領域
本發明涉及嵌入式電子設備領域,具體地涉及一種小內存嵌入式電子設備的動態內存分配方法。
背景技術
在嵌入式電子設備中,其內存(RAM)一般都比較小。為了充分利用有限的內存空間,需要對內存進行動態分配。中國發明專利申請CN103678152A公開了小內存微型控制器零碎片的動態內存分配方法,通過內存初始化、內存分配和內存釋放三個步驟,可以有效地利用內存,不產生碎片。但這種方法需要知道每個分配成功的內存單元的起始地址,結束地址和長度,并且在釋放的時候,需要判斷之前內存單元是否已經被釋放,釋放了才合并,執行代碼比較復雜,效率低。
發明內容
本發明旨在提供一種動態內存分配方法,以解決上述問題。為此,本發明采用的具體技術方案如下:
一種動態內存分配方法,其可包括以下步驟:
定義節點頭信息,節點頭信息包括節點的已使用長度ulen和next指針;
內存初始化,將內存池初始化成僅有開始節點和末尾節點的單向鏈表結構,其中,開始節點的ulen=0,next指針指向末尾節點;末尾節點的next指針為空,即next=NULL;
內存分配,當申請內存時,從開始節點開始查找剩余的空間長度大于等于申請內存的長度的節點,找到后判斷該節點的ulen是否等于0,若是,則將該節點的ulen的值改為申請內存的長度,否則在該節點后創建一個新節點,并將該節點的next指針指向新節點,新節點的ulen值等于申請內存的長度,next指針指向下一個節點;
內存釋放,當釋放內存時,若釋放的是開始節點,則只要將開始節點的ulen賦值為0即可,否則只需要將該節點的前一節點的next指針指到該節點的下一節點即可。
進一步地,節點的剩余空間長度LR的計算公式為:LR=nextblock-curblock-ulen-8-8,其中,curblock表示當前節點的起始地址,nextblock表示下一節點的起始地址,第一個8表示當前節點頭信息所占字節數,第二個8表示新創建的下一個節點頭信息所占字節數。
進一步地,ulen和next指針的長度均為4個字節。
本發明采用上述技術方案,具有的有益效果是:無需進行復雜運算,僅需對參數ulen和next指針進行操作,執行代碼簡單,效率高。
附圖說明
為進一步說明各實施例,本發明提供有附圖。這些附圖為本發明揭露內容的一部分,其主要用以說明實施例,并可配合說明書的相關描述來解釋實施例的運作原理。配合參考這些內容,本領域普通技術人員應能理解其他可能的實施方式以及本發明的優點。圖中的組件并未按比例繪制,而類似的組件符號通常用來表示類似的組件。
圖1是本發明的動態內存分配方法的流程圖;
圖2是內存初始化的示意圖;
圖3是第一次內存分配的示意圖;
圖4是第二次內存分配的示意圖;
圖5是第一內存節點釋放的示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于明見(廈門)技術有限公司,未經明見(廈門)技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110734591.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種辦公樓內部裝修施工工藝
- 下一篇:一種激光器動態固定裝置





