해결된 질문
작성
·
159
2
여기서
객체가 생기는 위치가 딱 고정되어 있냐 아니냐 그 기준으로 보시면 됩니다.
이 부분이 잘 이해가 안되는데
객체가 생기는 메모리의 위치가 객체가 고정되는 특징(데이터 또는 BSS segment의 특징?)을 가지고 있냐 아니냐
이렇게 교수님 말씀을 이해해도 괜찮을까요?
그리고
7분 45초 에서 교수님이 하시는 말씀의 순서가 좀 복잡해서 이해가 잘 안됬는데
사실은 프로그래머들이 편리하도록 자동적으로 영역과 지속 기간을 관리해주는 성질을 가질 수 있게
스택이란 공간을 만들고 거기에 저장을 하는 것이다.
라고 제가 정리를 좀 해봤어요 이 정리가 맞는 표현인가요?
항상 좋은 답변 정말 감사합니다.
답변 1
2
안녕하세요, 질문&답변 도우미 Soobak 입니다.
질문 1)
: 네, 옳게 이해하고 계십니다.
프로그래밍에서 정적(static)
이라는 용어는 주로 컴파일 시간에 메모리 위치가 결정되고, 프로그램 실행 동안 그 위치가 변하지 않는 성질을 가리킵니다.
이는 데이터가 프로그램의 생명주기 동안 계속해서 같은 메모리 위치를 차지하게 됨을 의미합니다.
이는 '정적 변수' 나 '정적 클래스' 의 특성과 관련이 있으며, 프로그램의 데이터 영역 또는 BSS 세그먼트에 저장되어 프로그램 실행 동안 고정된 메모리를 유지합니다.
질문 2)
: 네, 잘 정리하신 것 같습니다.
스택은 그 특성 상 함수의 데이터가 스택 영역에 저장된 후, 함수의 실행이 끝나면 사용했던 메모리 영역이 자동으로 해제되어 다음 함수 호출이 해제됩니다.
프로그래머가 직접 관리하지 않아도 되며, 함수 호출이 발생할 때 자동으로 할당되고, 함수가 종료될 때 자동으로 해제되는 영역입니다.
보다 자세한 내용은 강의 12.17 동적 할당 메모리와 저장 공간 분류 에서 '힙' 이라는 영역과 비교하여 학습하시게 됩니다.