4673번 - 셀프 넘버
문제 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.
가 나왔습니다.
배열의 할당된 크기보다 더 큰 곳에 대입하려는 문제라고 하던데 어디서 문제가 생겼는지 어떻게 해결해야 할지 모르겠습니다.
j가 9968이 되면 switch문에서 계산한 e가 10000이 되어 d[10000]에 접근하는 일이 발생하고, 이후 수많은 j값에서 잘못된 접근이 일어납니다.
감사합니다!
댓글을 작성하려면 로그인해야 합니다.
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.
가 나왔습니다.
배열의 할당된 크기보다 더 큰 곳에 대입하려는 문제라고 하던데 어디서 문제가 생겼는지 어떻게 해결해야 할지 모르겠습니다.