구분 Heap (힙) Stack (스택) Static (정적) Data (데이터)
할당 방식 동적 할당 자동 할당 (함수 호출) 정적 할당 정적 할당
메모리 해제 직접 해제 필요 (delete, free()) 함수 종료 시 자동 해제 프로그램 종료 시 해제 프로그램 종료 시 해제
속도 느림 빠름 중간 중간
사용 예시 객체, 배열 지역 변수, 매개변수 static 변수, 싱글톤 전역 변수
수명 직접 해제 전까지 유지 함수 실행 중 프로그램 종료 시 프로그램 종료 시

Heap 메모리

Stack 메모리

Static 메모리

Data(데이터 영역)