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

正文內(nèi)容

c內(nèi)存池設(shè)計(編輯修改稿)

2024-08-25 10:52 本頁面
 

【文章內(nèi)容簡介】 池分配內(nèi)存函數(shù) by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::AllocPoolMemeroy() { //計算 需要的鏈表節(jié)點數(shù)目 CalLinkNodeNum()。 //計算真正要分配的內(nèi)存大小 CalMemeSize()。 m_AllNumber = m_AllNumber + m_Number。 m_AllAloctsize += m_MemePollSize。 m_MemePoolFreeSize += m_MemePollSize。 //追加分配內(nèi)存,原有內(nèi)存的內(nèi)容不會受到影響 m_PAlloc = (EigthByte *)realloc(m_PAlloc,(m_AllAloctsize)*sizeof(EigthByte))。 //內(nèi)存分配失敗 if(NULL == m_PAlloc) { m_sError = Alloc Memeroy Pool Failture。 return。 } //不是第一次分配內(nèi)存 if(false == m_isFirst) { //新分配內(nèi)存后原有指針全失效,需要重定向 ResetLinkToMemery()。 } //分配的內(nèi)存內(nèi)容初始化 // memset(((void *) PAlloc), NEW_ALLOCATED_MEMORY_CONTENT, m_MemePollSize) 。 //將分配的線程池內(nèi)存與鏈表節(jié)點關(guān)聯(lián) LinkMemeryToNode(amp。m_PAlloc[m_AllAloctsize m_MemePollSize])。 } /***************************************** 將原內(nèi)存的指針進行重定向( Alloc 后原有內(nèi)存可能被釋放了) by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::ResetLinkToMemery() { TMemeLinkNode *pTemp = m_Headnext。 int iIndex = 0。 while(NULL != pTemp) { //重定向指針鏈表的指向 pTempData = amp。m_PAlloc[iIndex * m_MemLinkSize]。 if(NULL != pTemppUser) { //重定向用戶指針的指向 *pTemppUser = pTempData。 } iIndex++。 pTemp = pTempnext。 } } /***************************************** 計算需要的內(nèi)存鏈表節(jié)點數(shù)目 by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::CalLinkNodeNum() { float fTempValue = m_MemePollSize / m_MemLinkSize。 //向上取整需要的節(jié)點數(shù)目 m_Number = ceil(fTempValue)。 } /***************************************** 計算內(nèi)存池真正分配的內(nèi)存的大小 by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::CalMemeSize() { m_MemePollSize = (size_t)(m_Number * m_MemLinkSize)。 } /***************************************** 將分配的內(nèi)存和鏈表節(jié)點相關(guān)聯(lián) by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::LinkMemeryToNode(EigthByte *PAlloc) { TMemeLinkNode *PNode。 //遍歷每一個節(jié)點分配空間 for(size_t iIndex = 0。 iIndex m_Number 。 iIndex ++) { PNode = new TMemeLinkNode()。 if(NULL == m_LastNode) { PNodenext = m_Headnext。 m_Headnext = PNode。 PNodefirst = m_Head。 m_LastNode = PNode。 } else { PNodenext = m_LastNodenext。 m_LastNodenext = PNode。 PNodefirst = m_LastNode。 m_LastNode = PNode。 } m_LastNodeisUsed = false。 m_LastNodeidataSize = m_MemePollSize iIndex * m_MemLinkSize。 m_LastNodeData = amp。PAlloc[iIndex * m_MemLinkSize]。 m_LastNodeisMemeBegin = false。 m_LastNodepUser = NULL。 //記錄內(nèi)存塊的首地址,釋放時使用 if(true == m_isFirst amp。amp。 0 == iIndex) { m_LastNodeisMemeBegin = true。 m_isFirst = false。 } } UpdateLinkNodeSize(m_LastNode)。 } /***************************************** 更新當(dāng)前節(jié)點的前后大小值 by 風(fēng)清揚 song 130728 *****************************************/ void CMemePool::UpdateLinkNodeSize(TMemeNode *PNode) { TMemeNode *PTemp。 PTemp = PNodenext。 int iDateSize = 0。 //當(dāng)前節(jié)點的后一個節(jié)點沒分配,得到它的 DataSize 值 if(NULL !=
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1