前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >aligned malloc free

aligned malloc free

原创
作者头像
tankaro
发布2024-11-27 10:50:04
发布2024-11-27 10:50:04
450
举报

void* aligned_malloc(size_t required_bytes, size_t alignment)

{

int offset = alignment - 1 + sizeof(void*);

void* p1 = (void*)malloc(required_bytes + offset);

if (p1 == NULL)

return NULL;

void** p2 = (void**)( ( (size_t)p1 + offset ) & ~(alignment - 1) );

p2[-1] = p1;

return p2;

}

void aligned_free(void *p2)

{

void* p1 = ((void**)p2)[-1];

free(p1);

}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档