Look,
typedef struct jig
{
int *a;
int *b;
}temp;
now stage 1 :
temp *b;
b= (
Chance, that's what's happening. Nobody says uninitialized, non-static memory needs to hold any value. Both could contain anything.
malloc returned memory
from an erased page (so it contains 0)