WinAPI
복습) 지역 변수
Nin
2021. 1. 14. 02:22
지역 변수는 지역이 끝날때 사라진다.
int* Test()
{
int A = 100;
return &A;
}
int main()
{
int* b = Test();
}
위의 코드는 문법적으로 문제도 없고 실행해서 값을 확인해보면
b의 변수에는 100의 값이 들어가 있다.
그렇지만 이는 치명적으로 잘못 생각하고 있는 경우이다.

메모리로 보면 이런 상황이 된다. 즉 값이 100으로 들어 올수도 있지만
어떤 값이 들어올지 모르고 이상한 값이 들어와도 전혀 이상할게 없는 경우이다.
안전하게 처리하려면 새로운 메모리를 만들어 내서 리턴해주면 된다.