• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

마지막 문제 질문

22.01.24 15:45 작성 조회수 103

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

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

if (knight->IsDead())

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