작성
·
188
0
int _maxHp를 멤버변수로 추가하고, addHp 함수를 수정하였습니다. 그런데 디버깅을 하면 아래와 같은 메세지가 나옵니다.
예외 발생(0x00007FF7C35F146A, Exercise_4.exe): 0xC0000005: 0x00007FF7C35F146A 위치를 실행하는 동안 액세스 위반이 발생했습니다..
확인해보니 AddHp 하는 부분에서 i가 8538에서 예외가 발생하는데 이유를 모르겠네요..
디버깅 안하고 실행만 하면 정상적으로 실행이 되긴합니다.
void Knight::AddHp(int value)
{
_hp += value;
if (_hp < 0)
_hp = 0;
if (_hp >= _maxHp)
_hp = _maxHp;
}
답변 1
1
액세스 위반이 발생한다면 AddHp 자체의 문제는 아니고
그 전에 해당 객체의 메모리가 날라갔을 확률이 높습니다.
knight 객체를 삭제하는 부분이 미리 실행되지 않았는지 확인하셔야 합니다.