Given the following scenario :
typedef struct d
{
int x;
} D;
typedef struct c
{
D d;
} C;
typedef struct b
{
struct c *c;
} B;
typedef struct a
{
B b;
} A;
int main()
{
A *p1;
D *p2;
p2 = &p1->b.c->d;
}
My question is : how it could be possible to have (p2 != NULL) IF (p1->b.c == NULL) ?