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

millionku님의 프로필 이미지
millionku

작성한 질문수

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

디버깅 문제 풀이 #3

마지막 문제 질문

작성

·

149

0

for (int i = 0; i < 10; i++)

{

arrows[i]->AttackTarget();

 

// 기사가 죽었으면 소멸시켜준다

if (knight != nullptr)

{

if (knight->IsDead())

{

delete knight;

knight = nullptr;

break;

}

}

기사가 죽은 뒤에 화살이 죽은 기사를 공격하는게 문제라면

기사가 죽었을 때 화살을 더이상 쏘지 않게 break로 빠져나가면 된다고 생각했었는데

이럴 경우 크래시는 나지 않는데 문제가 있을까요?

 

답변 1

1

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

네 그래도 문제입니다.
나중에 가면 화살이 knight를 들고 있을 때

if (knight->IsDead())

같은 것을 체크하고 싶어도
애당초 knight가 메모리에서 날라갔으면 이렇게 체크하는 것조차 크래시를 유발할 수 있습니다.

millionku님의 프로필 이미지
millionku

작성한 질문수

질문하기