-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
CreateMonster함수 질문
24.05.18 22:24 작성 24.05.18 22:35 수정 조회수 62
0
1.void CreatMonsters(Statinfo* monsters, int count)로 선언을 했는데 제가 여기서 monsters부분을 monsters[]로하니 오류가 나더군요 오류가 나는이유가 궁금합니다 Statinfo타입의 배열로 만들었는데 그러면 배열로 선언해줘야 하는거 아닌지 궁금합니다
2. 1번과 연관된 질문입니다 void CreatMonsters(Statinfo* monsters, int count) 내부에서 랜덤밸류를 설정해서 몬스터의 i번쨰의 데이터를 집어넣는데 함수형식을 보면 Statinfo*라고해서 포인터로 선언했는데 내부 코드를보면 monster[i].hp를 사용하는데 배열관련된 부분은 .으로 접근해서 사용하는건 알겠는데 처음 함수를 선언할때 Statinfo*형식인데 ->로 접근해서 데이터를 변경하는게 맞는거아닌가요? 너무 헷갈립니다
3.EnterBattle(playerinfo,&monsters[index])을 실행할때 이런 모습인데 여기서 EnterBattle은
bool EnterBattle(Statinfo* playerinfo, Statinfo* monsterinfo);
이런 모습인데 실행시킬때 &playerinfo가 아닌 그냥 playerinfo인 이유가 Entergame함수에서 인자로 받은 playerinfo가 애초에 주소값이기때문에 그냥 playerinfo로 넣는건가요? 그리고 또 monsters배열에는 &가 붙은이유는 &가없으면 주소값이아닌 그냥 값의 형태기때문에 &를 붙여 주소로 변경해주는건가요??
답변을 작성해보세요.
0
인프런 AI 인턴
2024.05.18
안녕하세요, 인프런 AI 인턴입니다.
킴주니님의 질문과 관련해서 비슷한 문제를 다루는 내용이 있어 이를 안내드리겠습니다.
배열과 포인터 관련 질문:
StatInfo* monsters
와monsters[]
의 차이에 대해서 혼란이 있으신 것 같습니다. C++에서는 배열 이름이 포인터로 취급되기 때문에StatInfo* monsters
는StatInfo monsters[]
와 유사하게 작용합니다. 하지만 함수의 매개변수로 배열을 명시할 때는 크기를 지정하지 않는[]
형식으로 사용하는 것이 일반적이며, 이는 포인터로 배열의 시작 주소만 전달한다는 것을 의미합니다. 이와 관련된 내용을 자세히 설명한 기존 답변을 추천드립니다:- “참조와 배열에 대해서 질문드립니다.!”에서 배열과 참조에 대한 개념을 자세히 설명하고 있습니다.
- “참조와 배열에 대해서 질문드립니다.!”에서 배열과 참조에 대한 개념을 자세히 설명하고 있습니다.
포인터와 배열 인덱싱 사용 관련 질문:
StatInfo* monsters
가 포인터임에도 왜.hp
방식으로 접근하는지에 대한 질문입니다. C++에서는 포인터를 배열처럼 사용할 수 있으며,monsters[i]
는 배열의i
번째 요소에 접근하는 것을 의미합니다. 포인터에 대한 배열 인덱싱(monsters[i]
)은 내부적으로 포인터 연산을 하여 해당 위치의 주소를 찾고, 그 결과를.
연산자로 접근할 수 있습니다. 즉,monsters[i].hp
는(*(monsters + i)).hp
와 동일한 의미입니다. 이에 대한 설명을 담고 있는 기존 답변을 참조하세요:- “monster_2에 관해서 질문…”에서는 포인터와 배열, 참조의 사용 방법에 대해 설명하고 있으며, 이는 질문하신 내용과 밀접하게 관련됩니다.
- “monster_2에 관해서 질문…”에서는 포인터와 배열, 참조의 사용 방법에 대해 설명하고 있으며, 이는 질문하신 내용과 밀접하게 관련됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 1