字节对齐重写malloc 和 free
来源:互联网 发布:msdn win7 优化 编辑:程序博客网 时间:2024/05/22 01:04
void* MemAllocAlign( size_t size, size_tt AlignCount )
{
void * pBlock = NULL;
void * pBlockAligned = NULL;
pBlock = malloc( size + AlignCount );
size_t mask = AlignCount - 1;
// align the buffer with nAlign
if( !((size_t)pBlock & mask) )
{
pBlockAligned = (char*)pBlock + AlignCount;
}
else
{
pBlockAligned = (void*)(( (size_t)pBlock + mask ) & ~mask );
}
// save the offset
*((char *)pBlockAligned - 1) = (char)((char *)pBlockAligned - (char *)pBlock);
return pBlockAligned;
}
// free memory block allocated by MallocAlign
void FreeAlign(void *pMem)
{
if (pMem == NULL)
return;
char *pui8Buf = (char *)pMem;
pui8Buf -= pui8Buf[-1];
free(pui8Buf);
}
- 字节对齐重写malloc 和 free
- 实现支持2^n字节对齐分配的malloc和free函数
- 编写支持对齐分配的malloc和free函数
- 关于malloc和free
- malloc() 和 free()
- malloc和free原理
- malloc和free原理
- malloc()和free()
- malloc()和free()
- malloc和free
- malloc()和free()
- 关于malloc和free
- malloc()和free()
- malloc()和free()
- malloc和free原型
- malloc()和free()
- malloc 和free 分析
- malloc和free
- 浅析.NET
- c tips 待续、、、
- 正则表达式基础知识
- JS图片上传预览
- java学习笔记(一)
- 字节对齐重写malloc 和 free
- poj 1958 Strange Towers of Hanoi
- HDU,3782,xxx定律
- 线性时间查找第k大元素
- Activity---基础总结篇之三:Activity的task相关 .
- log4j定制类实现(二):添加模块名配置
- CF 121E Lucky Array 【树状数组】
- 公开课可下载资源汇总
- 抛硬币的赌博游戏——庞果英雄会