dlswlfl   5년 전

메인함수에 백터를 선언하면 잘 돌아가지만... 백터를 전역으로 선언 해 줬을 경우 프로그램이 돌아가다가 멈춥니다. 

이유가 뭘까요? 계산은 잘 하는것 같은데 중간에 멈춰버립니다.

첨부코드는 잘 돌아가는 코드입니다. 

아래의 코드에서 vector<int> a,b; 를 전역으로 선언 해 준 뒤, solve함수를 solve(int turn){} 으로 해주면 런타임이 뜨는것처럼 중간에 멈춰버립니다.

지금처럼 짜면 solve 함수에 a,b를 deep copy해서 보내주기 때문에 solve 함수에서 a,b를 변경하더라도 main 함수 내에 정의된 a,b에 아무런 영향을 주지 않지만 전역으로 선언하면 solve 함수에서 a,b를 바꾸면 당연히 전역으로 선언된 a,b 또한 변경되기 때문에 생기는 문제로 보입니다.

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