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

Getting a pointer to a memory address from a different pointer C

我正在编写自己的内存分配器。我从 mmap 得到一个指向映射内存的指针。从那里,我希望能够获得指向该映射内存的不同部分的指针(比如距离当前指针 x 字节)。我怎样才能做到这一点?内存管理让我很困惑。

mmap 给你一个 void* 并且 C 不允许用它们进行指针运算,但你可以将它转换为 char* 然后只需添加你想要的字节数,例如mypointer + 16.

如果将指针转换为更大的类型(如 int*),指针运算会增加该类型大小的倍数。例如,如果您将 16 添加到 int*,您将添加足够的字节用于 16 个 int 值(所以 64 个字节,假设 sizeof(int) 是 4)。