impascal1   2년 전

문제 4673번에서

1. 각각의 배열에 숫자를 대입하고(for - i 문)

2. 자릿수를 센다음에(for - j문)

3. if와 switch를 사용하여 생성자가 있는 배열은 전부 0을 대입하고

4. 배열의 값이 0이 아닌 배열들만 출력하려고 했습니다.

근데 런타임 에러가 나왔고 visual에서 돌려보니까

Run-Time Check Failure #2 - Stack around the variable 'd' was corrupted.

가 나왔습니다.

배열의 할당된 크기보다 더 큰 곳에 대입하려는 문제라고 하던데 어디서 문제가 생겼는지 어떻게 해결해야 할지 모르겠습니다.

zenith82114   2년 전

j가 9968이 되면 switch문에서 계산한 e가 10000이 되어 d[10000]에 접근하는 일이 발생하고, 이후 수많은 j값에서 잘못된 접근이 일어납니다.

impascal1   2년 전

감사합니다!

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