포인터 p가 있을 때 p=&x 이런식으로 먼저 주소를 지정하지않고 p를 쓰면 p가 아무 랜덤한 주소를 가리키고 있어서 쓰면 위험하댔는데

struct msg {char *p} x;
strcpy(x.p , "y");

이런식으로 쓰는건 왜 되는거임?