c++ 기초 플러스 보고 있는데 좀 이해가 안되서 질문 좀 할게



viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73cee84fa11d02831cd949b6924735c7cb75a680f5d9b0fd596a9804f8ffbdb005dae886d5a96925fe1d345b11a50b8295b7e3ac669304a6e2c



위와 같은 코드가 있어.

clone2에서 구조체 변수를 하나 선언하는데 저런 방식으로 선언하면 스택영역에 만들어진다고 알고 있거든.

그다음에 함수가 끝나면 스택영역에 있던 변수들은 없어진다고 알고 있는데 여기서 이 구조체를 함수 끝날 때 return 레퍼런스로 반환하잖아.

그 이후의 전개를 보면 이 함수안에서 생성된 구조체 메모리(?)는 사라지지 않고 계속 남아 사용이 되더라고.....


내가 알기로 스택영역에 있는 변수들은 해당 변수를 생성했던 스코프의 함수가 종료되면 다 정리된다고 알고 있는데 얘는 아닌거 같단 말이지..

스택영역에 선언된 변수 또는 메모리라고 할지라도 어떤 게 그대로 남아 있는지 조건과 그 남아있는 거는 언제 정리가 되는지 알고 싶어.