今天面试的时候遇到面试官提问了一个问题,当时的时候没有回答上来,
问题的大致问题就是定义一个结构体,然后在结构体里面定义几个数据,
然后指针指向其中的一个数据元素,问怎么操作可以知道结构体的地址。
问题的解决思路:这个问题的解决方法借鉴了内核链表的算法。
就是先打印指针所指向的数据元素的地址,然后把整个数据结构强制的放到任何你知道的地质处,比如0x100000处,然后再打印一下指针指向的地址,然后分析出地址偏移量,然后在根据之前打印的指针所指向的数据元素的地址,然后用这个地址减去偏移量就可以计算出结构体的地址了。
其实就是container_of的实现