2012-06-22 4 views
1

codechef에서 연습 문제를 제출하는 동안 매우 이상한 문제가 있습니다. "2D 함수 선언을 전역 적으로 선언하는"해결책은 받아 들여지는 반면 "주요 함수 안에있는 선언"은 잘못된 답으로 거부됩니다.2D char 배열의 전역 및 로컬 선언

다음은 솔루션 링크입니다. 주요 내부 http://www.codechef.com/viewsolution/1138654
2)을 갖는 Delaration() : I 메인 함수 외부 차원 문자 배열을 사용하고 있지 않다 : http://www.codechef.com/viewsolution/1138660

PS1 글로벌 선언 데

1).
PS2 : 배열에 대해 이야기합니다. "char boardString [1000] [1000]";

답변

3

스택 공간이 부족한 것 같습니다. 전역 적가 데이터/기지국 세그먼트 할당 도착 배열을 선언하면

는 여기서도가 main()의 배열을 선언 할 때 스택 상에 로컬로 작성되는
동안 ((참고이 구현 세부이다) 구현 세부)

할당 할 어레이가 거대한 (1000 X 10000) 경우 스택 공간이 부족할 수 있습니다.
Codechef는이 문제를 감지 할만큼 지능적이므로 main()에 배열이있는 코드를 잘못된 대답으로 거부합니다.

1

알 수 있듯이 문제는 스택 공간 제한으로 인한 것일 수 있습니다. 변수를 main 안에 캡슐화하고 스택에 할당하지 않으려면 여기에 static이라고 선언해야합니다.