skiris1124   5년 전

왜 arr[10000]을 전역변수로 하면 맞고 지역변수로 하면 틀리는지 모르겠습니다.

왜그런건가요?

djm03178   5년 전

전역으로 해도 위험한 코드인데 운이 좋아서 통과되었을 뿐입니다.

https://www.acmicpc.net/board/...

skiris1124   5년 전

제가 아무것도 몰라서그런데 혹시 왜 위험한지 알려주실 수 있을까요? 

djm03178   5년 전

링크한 글을 읽어보세요. 9999는 무엇의 생성자라고 되어있나요?

seico75   5년 전

일단 10000까지 돌릴꺼면 10001의 크기를 잡아야할 것 겥습니다.

생성된 수를 arr배열 해당 값을 하나씩 증가시키면서 나중에 0인 것을 출력하는데...

정작 arr을 초기화하진 않네요. 처음에 0일꺼라눈 가정인데 .

전역배열은 0으로 초기화가 되는 것이 맞으나 지역은 초기화가 안됩니다.

지역변수는 스택메모리에 잡혀서 단순 포인터 이동으로 할당되기 때문이고 전역변수는 실행할때 heap 영역에 0으로 초깋6ㅏ하면서 잡힙니다.

djm03178   5년 전

아... sum > 10000인 건 버리고 하셨군요. 그 부분은 제가 못 봤습니다. seico님 말씀처럼 10000번째 인덱스에 접근하는 것만 문제네요.

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