int* p;
*p = 128;
p를 초기화하지 않은 상태로 사용하였다.
p가 쓰레기값을 가져 어느곳을 가리키고 있는지 모르는 상황에서 128값을 집어 넣었으니
시스템적으로 아주 중요한 데이터가 있는곳에 데이터를 지워버리고 128을 넣은 것 일 수도 있다.
그러면 시스템이 다운되어버린다.
int* P = 0;
if ( 0 != p )
*p = 30;
위와같은 방식대로 무조건 0값으로 정의하고
if 문으로 0값이 아닌 경우에만 사용하는 습관을 들이면 안전하게 사용할 수 있다.
0값은 아무곳도 가리키고 있지 않다. 는 뜻이 된다.
int* P = NULL;
보통은 0 대신 NULL로 쓴다. 어차피 같은 뜻이다.