我正在编写自己的内存分配器。我正在从mmap获取指向映射内存的指针。从那里,我希望能够获得指向该映射内存的不同部分的指针(例如远离当前指针的x个字节)。我怎样才能做到这一点?内存管理对我来说非常混乱。
答案 0 :(得分:2)
mmap
为您提供void*
,C不允许使用这些指针算法,但您可以将其强制转换为char*
,然后只需添加所需的字节数,例如mypointer + 16
。
如果将指针强制转换为更大的类型(如int*
),则指针算术会添加该类型大小的倍数。例如,如果向int*
添加16,则为16个int
值添加足够的字节(因此,假定sizeof(int)
为4,则为64个字节。)