从不同的指针C获取指向内存地址的指针

时间:2018-03-15 00:19:23

标签: c memory-management mmap pointer-arithmetic

我正在编写自己的内存分配器。我正在从mmap获取指向映射内存的指针。从那里,我希望能够获得指向该映射内存的不同部分的指针(例如远离当前指针的x个字节)。我怎样才能做到这一点?内存管理对我来说非常混乱。

1 个答案:

答案 0 :(得分:2)

mmap为您提供void*,C不允许使用这些指针算法,但您可以将其强制转换为char*,然后只需添加所需的字节数,例如mypointer + 16

如果将指针强制转换为更大的类型(如int*),则指针算术会添加该类型大小的倍数。例如,如果向int*添加16,则为16个int值添加足够的字节(因此,假定sizeof(int)为4,则为64个字节。)