关注((type *)0) - > container_of宏中的成员

时间:2013-02-13 09:29:37

标签: c linux linux-kernel kernel

我对语句((类型*)0) - >成员在Linux内核最常讨论的宏“container_of”

的扩展中感到困惑

为什么在container_of宏中不取消引用0不会产生问题? 我想(可能是我错了)因为我们将0转换为(类型*),我们没有问题。但请坚持,考虑一下: -

void irq_handler(void *ptr)
{
    struct my_struct *p = (struct my_struct *) ptr;
    ptr->my_member = 7;
    global_variable = ptr->my_another_member;
    ...
    ...
}

假设由于某些内存损坏而假设我的ptr变为NULL,那么在这种情况下,由于空指针的取消引用,内核肯定会崩溃吗?

为什么这种偏袒或分化?或者我的任何理解都是错的?请纠正我。

0 个答案:

没有答案