您的位置:首页 > 其它

位数对齐的内存申请释放

2015-05-17 21:59 141 查看
void* alMalloc( size_t size, int alignment )

{

const size_t pSize = sizeof(void*), a = alignment-1;

void *raw = malloc(size + a + pSize);

void *aligned = (void*) (((size_t) raw + pSize + a) & ~a);

*(void**) ((size_t) aligned-pSize) = raw;

return aligned;

}

void alFree(void* aligned)

{

void* raw = *(void**)((char*)aligned-sizeof(void*));

free(raw);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: