int main() {

char *a;

a = "abc";

}


이건 오류가 안뜨는데


int main() {

int *a;

*a = 3;

}


이건 초기화되지않은 지역변수 a를 사용했다고 오류가 뜨네요


int의 경우는 포인터 변수에 대한 메모리를 할당 안했으니까 오류가 뜨는게 이해가되는데


문자열의 경우는 메모리 할당을 안했는데도 어떻게 문자열을 할당하는게 가능한지가 궁금합니다