c++ - 如何获得指针的头部?

标签 c++ linux pointers

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

欢迎任何帮助,谢谢!

最佳答案

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

关于c++ - 如何获得指针的头部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14292051/

相关文章:

c++ - C++中链调用中的评估顺序

c++ - C++ 中指针的行为

c++ - forward<T>(a) 和 (T&&)(a) 有什么区别

c - 无法编译GNU-EFI程序

c++ - 使用回调中的值更新 std::vector 的 GUI slider 的动态数量

c++ - 您如何确定 C++ 中 Linux 系统 RAM 的数量?

linux - find命令+根据目录时间戳删除旧目录

c - 传递指向 typedef 数组的指针

c++ - 删除STL指针 vector 条目的快速方法

c - 圆括号内的指针