Also, from the archives: http://www.mail-archive.com/kernelnewbies@nl.linux.org/msg12320.html

On Fri, Mar 9, 2012 at 7:21 PM, Vijay Chauhan <kernel.vijay@gmail.com> wrote:
Hi,

I'm checking the container_of and offsetof macro

#define container_of(ptr, type, member) ({ \
               const typeof( ((type *)0)->member ) *__mptr = (ptr);
               (type *)( (char *)__mptr - offsetof(type,member) );})

#define offsetof(TYPE, MEMBER) \
 ((size_t) &((TYPE *)0)->MEMBER)


I did not understand the first line of both macro. Will it not create
the NULL pointer dereference problem? I know it works and read some
article but it did not explain this part, so can anyone explain why
the NULL pointer error is not coming. Am I missing something?
Any C language specification of such example.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



--
/manohar