如何获得指针的头部?

时间:2013-01-12 09:37:37

标签: c++ linux pointers

我想知道,获取给定内存地址的头指针的最佳方法是什么?例如,如果p分配在地址0且大小为32 bytes,我如何从地址0返回12?换句话说,从地址返回到“主地址”进一步进入其数据结构。这可能吗?

欢迎任何帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

对于结构,这可以使用container_of宏来完成,前提是你知道它的类型,并且你有一个指向它的成员的指针(例如,如果给你一个指向成员的指针,则获取结构的指针) )。对于使用malloc完成的内存分配,这是不可能的,除非您已经遍历或偏移了当前所在的长度。