您的位置:首页 > 其它

库实现之分配内存对齐的程序aligned_malloc和aligned_free函数

2013-10-28 08:51 387 查看
分配内存管理对齐的程序

void *aligned_malloc(int size, int alignment)

{

      void *ptr = (void*)malloc(size + alignment);

      if (ptr)

      {

            void * aligned =(void *)(((long)ptr + alignment) & (~(alignment-1)));

            (void **)aligned[-1] = ptr;

             return aligned;

      }

      

      return NULL;

}

 

释放函数aligned_free

void *aligned_free(void *paligned)

{

      free(paligned);

 

}

关键是利用分配的内存首地址的前一地址记录内存真正分配的起始地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐