如果我有:
struct my_container {
int x;
struct some_struct *ss;
}
如果我有指针ss,我可以访问some_struct中的成员,我应该可以通过执行以下操作来访问my_container? 这就是我在做的事情:
struct my_container *my_c;
my_c = container_of(&ss, struct my_container, ss)
但这不能肯定,我无法理解为什么。 有人可以帮我弄这个吗?有什么东西我不见了吗?
答案 0 :(得分:1)
如果您只有指向some_struct
的指针(即如果只有struct some_struct *ss;
),则不能以这种方式使用container_of
宏,如&ss
只评估某个变量的地址,不 my_container
的地址。要正确使用它,您需要指向指向some_struct
的指针(即struct some_struct **pss
)。