freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c內(nèi)存池設(shè)計(專業(yè)版)

2025-09-19 10:52上一頁面

下一頁面
  

【正文】 char c = ptrCharArray[800]。 g_ptrMemPoolShowTheMemePoolStatue()。 delete qTemp。 while(NULL != PTemp) { if(PTempData == (EigthByte *) p) { //釋放內(nèi)存的用戶清空之前保存的用戶信息 PTemppUser = NULL。 return pTempData。 return FindMemeNode(sSize)。 //保存請求內(nèi)存分配的用戶信息 m_User = p。 } /***************************************** 更新當(dāng)前節(jié)點的前后大小值 by 風(fēng)清揚(yáng) song 130728 *****************************************/ void CMemePool::UpdateLinkNodeSize(TMemeNode *PNode) { TMemeNode *PTemp。 m_LastNode = PNode。 int iIndex = 0。 m_isFirst = true。 // //recalloc 分配新內(nèi)存后,之前指向舊內(nèi)存的指針就失效了 //需要重新定位,之前分配對象的指向也要重新定位 namespace MemePool { /***************************************** 內(nèi)存池構(gòu)造函數(shù) by 風(fēng)清揚(yáng) song 130728 *****************************************/ CMemePool::CMemePool(const size_t amp。 //雙向鏈表的當(dāng)前節(jié)點 TMemeLinkNode *m_Current。 operator =(CMemePool amp。 //使用者對象的地址 void **pUser。 2, 如果之前得到內(nèi)存的對象,在新內(nèi)存分配前有指針復(fù)制操作,原有對象可以通過保存的指針地址進(jìn)行重定向,但是之前分別的對象不能保證。 //新的大小一定要大于原來的大小,不然的話會導(dǎo)致數(shù)據(jù)丟失! 頭文件: include 有些編譯器需 要 include ,在 中可以使用 頭文件 功能:先判斷當(dāng)前的指針是否有足夠的連續(xù)空間,如果有,擴(kuò)大 mem_address 指向的地址,并且將 mem_address 返回,如果空間不夠,先按照 newsize 指定的大小分配空間,將原有數(shù)據(jù)從頭到尾拷貝到新分配的內(nèi)存區(qū)域,而后釋放原來 mem_address 所指內(nèi)存區(qū)域(注意:原來指針是自動釋放,不需要使用 free),同時返回新分配的內(nèi)存區(qū)域的首地址。為此,需要設(shè)計一個通用的內(nèi)存池來完成相關(guān)的分配和釋放的工作。因此使用 C 語言的realloc 函數(shù)來滿足要求。 釋放內(nèi) 存池 : 首先釋放向系統(tǒng)申請的內(nèi)存塊,之后在清空所有的雙向鏈表。 //分配的節(jié)點的后一節(jié)點 TMemeNode *pEndNode。 //獲取錯誤信息 void GetErrorInfo()。 void CleatAllLinkNode()。 //保存請求分配內(nèi)存用戶信息 void **m_User。 m_Headnext = NULL。 //將分配的線程池內(nèi)存與鏈表節(jié)點關(guān)聯(lián) LinkMemeryToNode(amp。 if(NULL == m_LastNode) { PNodenext = m_Headnext。 0 == iIndex) { m_LastNodeisMemeBegin = true。 } /***************************************** 分配內(nèi)存空間 by 風(fēng)清揚(yáng) song 130728 *****************************************/ void *CMemePool::GetMemeroy(void **p,const size_t amp。 } m_Current = m_Currentnext。 iIndex++。 iIndex++。 } } /***************************************** 清空雙向鏈表 by 風(fēng)清揚(yáng) song 130728 *****************************************/ void CMemePool::CleatAllLinkNode() { TMemeLinkNode *pTemp = m_Headnext。 g_ptrMemPoolShowTheMemePoolStatue()。 i++) { ptrCharArray[i] = 39。 delete g_ptrMemPool 。 g_ptrMemPoolShowTheMemePoolStatue()。 cout\t\t 總內(nèi)存池大小 :m_AllAloctsize使用大小 :m_MemePoolUseSize空閑大小 :m_MemePoolFreeSizeendl。 } return NULL。sSize) { //減少分配數(shù)目 m_iUseObject。 //向上取整需要的節(jié)點數(shù)目 m_Number = ceil(fTempValue)。 if(NULL != pFind) { return pFind。 //當(dāng)前節(jié)點的后一個節(jié)點沒分配,得到它的 DataSize 值 if(NULL != PTemp amp。 PNodefirst = m_LastNode。 if(NULL != pTemppUser) { //重定向用戶指針的指向 *pTemppUser = pTempData。 } /***************************************** 內(nèi)存池分配內(nèi)存函數(shù) by 風(fēng)清揚(yáng) song 130728 *****************************************/ void CMemePool::AllocPoolMemeroy() { //計算 需要的鏈表節(jié)點數(shù)目 CalLinkNodeNum()。 //初始化每個內(nèi)存塊的大小 m_MemLinkSize = sMemoryChunkSize。 //保存第一次運(yùn)行頭地址 bo
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1