스택 객체와 힙 객체는 수명 책임이 다르다

둘 다 Person 객체를 만들지만, 스택은 스코프가 정리하고 힙은 코드가 소유권과 해제 시점을 드러내야 합니다.

stack

Person p1("김영희", 25); p1.introduce();
생성 선언 지점
접근 점 연산자
정리 스코프 종료 시 자동

heap

Person* p3 = new Person(...); p3->introduce(); delete p3;
생성 new 호출
접근 화살표 연산자
정리 delete 또는 소유 객체
기준
스택
기준기본 선택
스택함수 안에서 쓰고 끝나는 객체
스코프 밖까지 살아야 하거나 큰 객체
기준위험
스택수명이 짧아 외부 참조를 남기면 위험
delete 누락, 이중 해제, 댕글링 포인터
처음에는 스택을 우선 고려하고, 스코프 밖 수명이나 공유 소유가 필요할 때만 힙과 스마트 포인터를 검토합니다.