posix_memalign()
内存对齐:malloc申请到的内存在32位系统中以8的倍数对齐,64位系统中以16的倍数对齐。如果想以一整页对齐,则需要aligned_alloc或者posix_memalign函数。
#include<stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size)
/*说明*/
//posix_memalign通过memptr返回地址,所以memptr使用了指针的指针。(应该不难理解)
//与memalign不同的地方:alignment的值必须是sizeof(void *)的正数倍,且为2的n次方。(当然所有的内存对齐申请函数的alignment都必须是2的n次方)
//申请size大小的内存块,地址为alignment的倍数(size必须为alignment的倍数)
//成功返回0,否则返回错误参数。
网友评论