将数组与页面开始对齐

时间:2013-11-15 12:45:24

标签: c memory-management offset

我正在开发一个用于测试目的的程序,重要的是我创建一个与页面开始对齐的数组。也就是说,a[0]在页面偏移0.这样做的方法是什么?

2 个答案:

答案 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);