인프런 커뮤니티 질문&답변

baljang님의 프로필 이미지
baljang

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

포인터 마무리

pp[ 주소1 00000001 ] 인게 맞는 거 아닌가요?

해결된 질문

작성

·

141

0

메모리 창에 &pp 해서 나온 주소값이 가리킨 곳으로 가면

pp인 거잖아요 pp에 들어있는 값이 0000 0001 이면

주소2                                              [    ]

주소1(유효하지 않은 주소)             [    ]

pp                                                   [ 주소1 00000001 ]

int** pp = (int**)arr2;

이렇게 주소2가 가리키는 곳 (**pp)까지 갈것도 없이 *pp단계에서 크러쉬 되는 거 아닌가요? 

pp 자체가 주소인데 왜 &를 붙여서 &pp를 메모리 창에 입력하는 건가요? 

&를 붙이면 pp의 주소가 되니 int***pp 로 되는거 아닌가요? 

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

메모리 디버그 창에서의 &변수명은 C++ 문법과 좀 별도로 생각해주시기 바랍니다.
pp가 주소를 담고 있는 바구니라고 가정해봅시다.

이 때 메모리 창에 pp를 입력하면, 실제 pp 안에 있는 주소 값으로 서칭이 됩니다.


반면 &pp를 하면, pp라는 바구니 자체의 주소로 서칭하게 됩니다.
따라서 실제 pp라는 바구니의 내용물을 아래와 같이 살펴볼 수 있습니다.


이게 헷갈리면 아래 조사식이랑 같이 살펴보면 도움이 됩니다.


baljang님의 프로필 이미지
baljang
질문자

제가 지금까지 메모리창 사용법을 잘 못 알고 있었네요. 이제 확실히 알겠어요! 

스샷까지 첨부해 주시고 알기 쉽게 설명해 주셔서 정말 감사합니다! :)

baljang님의 프로필 이미지
baljang

작성한 질문수

질문하기