#include <stdio.h>
void main()
{
int *temp[3];
//int **pptemp=temp;
printf(\"%x %x\",temp,*temp);//<-초기화하지 않은 값에 접근하려고 했으니 에러
}
#include <stdio.h>
void main()
{
int *temp[3];
int **pptemp=temp;//
printf(\"%x %x\",temp,*temp);//<-??????초기화 하지도 않은 값에 접근했는데 0cxcccccccc?
}
왜 이런 거죠\'\';
초기화는 안되어있고 기존에 남아있던 쓰레기가 보이겠죠
컴파일러가 자동적으로 해주는 일이 이런 것도 있네요. 초기화 되지 않은 값을 다른 변수에 넘겨줄때 아무값이나 넣어서 초기화 시켜주네요.(맞나;;?)
초기화 안 시키는데
int **pptemp=temp; //<-초기화는 안시키는데 뭔가 자동적으로 하는 것 같은데요?
0xcccccccc는 초기화 안된 메모리를 의미하는 값으로 컴파일러 옵션에 따라 컴파일 타임에 어셈코드로 박혀 들어가게 됨. 그것 외에도 힙 메모리 해제 할때 0xfeeefeee라는 값을 넣어주는데 이건 해제된 메모리 라는 의미
ㄴ 오홋! 멋진 남자!