linux通过posix_memalign函数可以分配按2的幂对齐的内存,从而给分配大块内存带来了便利性。
int posix_memalign (void **memptr, size_t alignment, size_t size);
参数说明:
memptr,用于保存返回的内存地址
alignment,内存对齐的标准,即2的幂,并且必须是void*的整数倍
size,所需内存的大小,可以不是2的幂
返回值:
成功时返回0
失败时,返回EINVAL代表alignment不是2的幂, ENOMEM代表没有足够的内存
注:分配的内存可以通过free进行释放
#include <stdio.h>
#include <stdlib.h>
void allocateMemory(int align)
{
char* buf = 0;
int ret = 0;
int alc_size = 10;
ret = posix_memalign((voi