IntegerOverflow

정수가 저장할 수 있는 가장 큰 값보다 더 큰 값, 또는 가장 작은 값보다 더 작은 값을 저장하려고 할 때 발생합니다. 다음과 같은 경우에 발생합니다.

소스 1. int 최댓값이 저장되어 있는 a에 1을 더해 오버플로를 발생시키는 소스

이 소스를 실행하면 오류 없이 정상 종료됩니다. C++에서 오버플로가 발생했을 때는 Undefined Behavior이기 때문입니다.

의 이유로 IntegerOverflow가 나오는 이유는 다른 부분도 문제가 있는데, 그 오류가 발생하기 전에, 오버플로가 발생했기 때문입니다.

소스 2. IntegerOverflow와 OutOfBound가 발생하는 소스

소스 2는 런타임 에러가 나는 부분이 총 2개가 있고, 그 위치는 6번 줄과 9번 줄입니다. 런타임 에러가 발생하는 이유는 9번 줄이지만, 6번 줄의 런타임 에러가 먼저 감지되어, 이유는 IntegerOverflow가 됩니다.

IntegerOverflow가 발생한 경우에는 다른 부분에서 이 오버플로로 인한 문제가 있을 수도 있다는 생각으로 디버깅을 해보는 것이 좋습니다.