작성
·
256
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가 있는 공간을 사용하는 것입니다.
포인터는 아주 중요하지만 처음엔 원래 어렵습니다.
그럴 땐 메모리를 까보면서 찬찬히 살펴보세요
감사합니다 덕분에 이해했습니다
디버깅 해보면서 메모리도 찬찬히 살펴보겠습니다 ㅎㅎ