🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

[10:25] AutoPtr 포인터의 메모리 위치 질문

24.05.24 17:05 작성 24.05.24 17:09 수정 조회수 63

1

AutoPtr을 사용 시, 함수?가 끝나게 되면 자동으로 delete를 해주는 것은 이해했습니다. 그렇다면 res1이라는 포인터는 스택 메모리에 저장이 되어 있다고 생각하면 될까요?

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2024.05.25

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

네, 맞습니다.

res1 이라는 포인터 자체는 스택 메모리에 저장됩니다.

좀 더 구체적으로 설명드리자면,

  • AutoPtr<Resource> res1(new Resource); 라는 코드를 통해 생성된 res1AutoPtr<Resource> 타입의 객체입니다.

  • 이 객체는 지역 변수로 선언되었으므로 스택 메모리에 저장됩니다.

    • res1 객체 내부의 멤버 변수인 m_ptr 은 힙 메모리에 동적으로 할당된 Resource 객체를 가리키는 포인터입니다.

res1 자체는 스택 메모리에 존재합니다.

bum7124님의 프로필

bum7124

질문자

2024.05.25

감사합니다!

채널톡 아이콘