int* out()
{
int a=5;
return &a;
}
위와 같은 함수를 정의하고
main()에서
int* num=out();의 코드를 실행했습니다.
Local Variable을 Return했으니, 전 곧바로 값이 깨질것이라 생각했지만
실행결과를 해석하기 어려웠습니다.
1.
int* num=out();의 실행이 끝나고
(*num)++;을 수행했더니 6이라는 값이 나왔습니다.
값이 아직 안깨졌습니다.
loop와 같은 다른 명령을 수행해도 값은 안깨집니다.
2.
int* num=out();의 실행이 끝나고
cout<<*z<
*z의 값이 깨졌습니다.
3.
int* num=out();의 실행이 끝나고
cout<<123<
*z의 값이 깨졌습니다.