jo2909   4년 전

visual studio 2019 에서 컴파일하면
경고 C6262 함수에서 '40012'바이트의 스택을 사용하는데 이 크기가 /analyze:stacksize '16384'을(를) 초과합니다. 일부 데이터를 힙으로 이동하십시오. 

라고 오류가 뜹니다. 이게 배열이 너무 커서 생기는 오류같아 보입니다. 런타임 오류도 이것 때문에 뜨는 것 같습니다. 근데 다른 질문들을 보면 다들 배열 크기가 저랑 비슷한데 작동되시는 것 같아서 혼란스럽습니다.  제출할 때 '정답일 때면 표시'를 설정했는데 채점 현황을 보면 제가 제출한 코드가 다 올라가 있습니다. 어느 부분을 고쳐야 성공할까요?

djm03178   4년 전

스택 크기 설정에 대해 알아보세요. 컴파일러 설정으로 해결할 수 있습니다.

jo2909   4년 전

스택 크기를 늘려도 안 되던 게 배열을 전역 변수로 바꾸니까 바로 되네요;;

메모리 공부를 해야겠습니다...

djm03178   4년 전

제대로 늘리지 않으신 것이라고 추정됩니다.

지역 변수만이 스택에 들어가기 때문에 다른 곳에 선언하면 당연히 됩니다.

jo2909   4년 전

visual studio 2019 메뉴 모음 -> 프로젝트 -> 속성 -> 링커 -> 시스템 -> 스택 예약 크기&스택 커밋 크기 설정, 큰 주소 처리 YES 설정 아닌가요?

preview


djm03178   4년 전

자세히 보니 오류가 아니라 경고네요. 경고는 에러가 아닙니다. 런타임 에러는 그 때문이 아니라 35번째 줄의 값이 배열 크기를 넘어갈 수 있어서 발생한 겁니다.

jo2909   4년 전

지금보니 그러네요. 친절하고 좋은 피드백 감사합니다!

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