2013-10-19 1 views
-1

cin >> myVar을 수행하면 해당 데이터가 스택에 저장됩니까? 그것은 기능 '범위'에 살고 내 기능 밖에서 정의되지 않습니까? 응용 범위 내에서 살고 있습니까?cin은 힙이나 스택을 사용합니까?

+0

어떤 데이터를 참조하고 있습니까? 'myVar'? 'cin' 객체? 사용하는 버퍼는 무엇입니까? 기본 OS 스트림의 데이터 구조는 무엇입니까? 다른 것? –

답변

3

cin은 버퍼를 사용하여 myVar에 데이터를 기록하므로 myVar을 선언 한 방법에 따라 다릅니다.

myVar가 로컬 매개 변수이면 해당 데이터는 스택에 저장되고 함수의 끝 부분에서 범위를 벗어납니다.

"new"키워드를 사용하여 myVar을 힙에서 동적으로 할당하면 데이터가 힙에 저장됩니다. 이 경우 데이터의 스코프/수명 (RAII 또는 스마트 포인터)을 관리하는 데는 여러 가지 방법이 있지만 결론은 프로그래머가 메모리가 올바르게 릴리스되는지 확인해야한다는 것입니다. 손을 놓기 전에 메모리가 해제되지 않으면 프로그램이 종료 될 때 메모리가 해제됩니다.

관련 문제