• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

포인터 질문입니다

23.04.10 13:41 작성 조회수 198

0

void Createmonster(StatInfo* Info); // 함수 선언부

 

Createmonster(&monster); // 함수 호출부

 

void Createmonster(StatInfo* Info) // 함수 내용

{

cout << "몬스터 생성" << endl;

Info->hp = 40;

Info->damage = 8;

Info->defence = 2;

}

Info->hp 가 어떻게 monster.hp에 접근하게 되는지 잘 이해가 안갑니다..

해석이 잘 안된다고 해야될지 말로 표현이 잘 안됩니다

답변 1

답변을 작성해보세요.

0

포인터는 주소이니, 주소를 타고 가서 Monster 데이터가 있는 부분을 건드린 것입니다.
Info->hp는 사실상 (*Info).hp와 동일한 의미인데요.
*Info를 해서 Monster 시작 주소로 타고 간 다음,
.hp를 이용해 + 오프셋을 해서 hp가 있는 공간을 사용하는 것입니다.
포인터는 아주 중요하지만 처음엔 원래 어렵습니다.
그럴 땐 메모리를 까보면서 찬찬히 살펴보세요

5116696님의 프로필

5116696

질문자

2023.04.11

감사합니다 덕분에 이해했습니다

디버깅 해보면서 메모리도 찬찬히 살펴보겠습니다 ㅎㅎ