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

김호찌님의 프로필 이미지
김호찌

작성한 질문수

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

다중 포인터

pp 질문입니다.

작성

·

252

0

이틀동안 고민했어요.

이렇게 생각하면 맞는건지 궁금해요..

pp 포인터 변수는 main 스택프레임 안의 메모리에 박혀있고.

ex) const char** pp -> 0x00000001주소에 박혀있음

pp포인터 변수는 &msg의 주소를 가짐

pp 변수의 주소를 SetMessage 의 매개변수 a에 넣음.

*a 로 a(pp)변수가 가진 주소로 텔레포트 -> &msg

&msg가 가진 주소에 "bye"의 주소를 넣음

const char** pp = &msg;

//[매개변수][RET][지역변수 (msg(hello의 주소)) ][매개변수(a((msg의 주소)))][RET][지역변수]
// 매개변수 a 는 pp(&msg)의 주소를 가짐.
//*p로 pp 가 가지고있는 &msg주소의 값을 가져옴 
// 어라? 주소가 또 있네? -> 그 주소를 바꾸는 것. (&msg가 가지고있는 값(주소)를 바꿈)
// 그래서 바뀌는 것.
SetMessage(pp);
cout << msg << endl;

 

답변 1

0

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



ㅁ말로 하기 보단 그림으로 보는게 더 쉬울 것 같네요.
위 그림에서 0x200를 0x300을 교체하는겁니다.

김호찌님의 프로필 이미지
김호찌
질문자

말보다 그림으로 그릴걸그랬네요. 생각했던 흐름이 맞습니다. 감사합니다.

김호찌님의 프로필 이미지
김호찌

작성한 질문수

질문하기