judygh_hong   3년 전

배열의 범위를 초과해도 코드가 통과합니다.

ex )n = 1000 이고 

b의 배열 순서가 1999 1997 1995 1993 1991 ... 3이면

a의 배열 순서는 999 1000 997 998 995 996 993 994 991 992 ....... 3 4 1 2 이 됩니다.

코드 25번째 줄의 반복문을 수행하면서 a[0] = 3이면 a[1] = 1996이 됩니다.

이때 a[2]는 if 조건문에 걸리지 않게 되어 chk[1996] = 1이 표시가 되는데 제가 설정한 chk배열의 크기(= 1005) 가 벗어나게 됩니다.

이렇게 범위가 벗어나도 런타임에러가 발생하지 않는데 정상인가요...???

artichoke42   3년 전

놀랍게도 정상입니다. 배열 인덱스 초과가 발생한다고 무조건 런타임 에러가 발생하는것은 아니며, 틀렸습니다, 시간초과 등 다른 결과가 나올 수도 있습니다.

댓글을 작성하려면 로그인해야 합니다.