wngjs521   6년 전

현재 VS 2015 환경에서 개발중입니다.

12100 문제는 DFS 완전탐색으로 풀었는데

정답은 맞게나오는데 자꾸만 런타임 에러가 나옵니다

게임 판을 map[][]이중 배열에 저장해서

dfs 검색시 이중배열을 파라미터로 써서 해답을 구했습니다.

정답 확인시 올바르게 나오나

제출시에는 런타임 에러가 뜨는데

이중배열을 바까봐도 에러나 런타임 에러가 계속 뜨는데 제발 좀 도와주세요

제생각에는 vs버전이 높아 컴파일환경이 맞지 않는거 같은데 제가 보유하고 있는 VS버전이 이것 밖에 없어서

무엇때문에 런타임 에러가 뜨는지 알고 싶은데 도저히 모르겟습니다. 도와주세요 ㅠㅠ

sgchoi5   6년 전

몇 가지 도움말을 드리면, 

1) 문제에 있는 TC 는 Sample TC 입니다. 그냥 예제 역할이구요, 서버에는 훨씬 많은 개수의 TC 가 입력으로 주어집니다.

2) 런타임 에러는 보통 지정된 배열의 index 초과하면서 많이 생기고요.. 

    채점 도움말에 보면, https://www.acmicpc.net/help/j... 아래와 같이 되어 있습니다. 각각에 대해서 검색을 해보시길..

   

  • 런타임 에러: 실행 도중에 'segmentation fault', 'floating point exception', 'used forbidden functions', 'tried to access forbidden memories' 등의 에러가 발생하여서 프로그램이 종료된 경우 입니다.


wngjs521   6년 전

죄송한데 조심스럽게 질문좀 드리려구요..ㅠ

런타임 에러 4가지 중에 포인터와 메모리 두가지가 좀 의심 스럽습니다.

제생각에 혹시 2차원 배열을 파라미터로 주고 받을때

예를 들어 소스코드에서 보면 ChangeData함수를 써서 데이터 변경 할 경우 정상적으로 Test 데이터가 변경되고 제대로 동작 되는게 맞는지?

아니면 파라미터로 이차원 배열을 사용하려면 포인터라든가 콜바이레퍼런스와 같은 처리를 따로 해주어야 메모리나 포인터에 문제가 없는건지가 궁금합니다.

예제 코드로  데이터를 변경해도 괜찮은건가요?? 

sgchoi5   6년 전

Debugger 로 break point 를 걸고, 값이 잘 변경되는지 한 번 해보시길..

알고리즘 문제 해결시에는 그냥 전역 변수를 쓰시면 됩니다..


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