我正在开发一个用于测试目的的程序,重要的是我创建一个与页面开始对齐的数组。也就是说,a[0]
在页面偏移0.这样做的方法是什么?
答案 0 :(得分:1)
我认为我使用了valloc
,根据this,它确实使用了{{1}}:
void * valloc(size_t size)
从页面边界开始分配一个大小为字节的块。
答案 1 :(得分:1)
valloc(size)
分配大小字节并返回指向已分配内存的指针。内存地址将是页面大小的倍数,但不推荐使用。 memalign(sysconf(_SC_PAGESIZE),size);
是另一种选择,但也已弃用。为了将来的便携性使用:
posix_memalign(sysconf(_SC_PAGESIZE),size);