7slidemorning   2년 전

DFS , BFS 입문자 입니다. 

스택과 큐를 배열로 구현하여 사용하고 있습니다. ArrMax는 1000으로  define 해놓았습니다.

그래프 또한 Matrix 형식으로 2x2 배열 선언을 통해 멤버 변수로 선언을 해놓았습니다.

문제는 ArrMax 를 100으로 define 했을때는 잘 실행이 되지만,

ArrMax를 1000 으로 define 하면 console 에는 아무런 출력이 나타나지 않고 종료됩니다.

메모리문제인것 같은데..... 어떻게 해결하면 좋을까요...??

LinkedList 뿐만이 답인가요??

djm03178   2년 전

함수 내부에 선언되는 지역변수는 메모리 구조에서 스택 영역에 할당됩니다. 스택 영역은 프로그램마다 그 크기가 실행 시 정해져 있고, 예를 들어 VS에서 기본값은 1MB입니다. ArrMax가 1000이면 int Matrix[ArrMax][ArrMax]는 약 4MB 정도가 되기 때문에 할당하지 못하고 종료되는 것입니다.

스택 영역의 크기를 늘리는 옵션을 찾아보거나, 전역 변수를 쓰거나, 동적 할당을 하시면 됩니다.

7slidemorning   2년 전

정말 감사합니다 !!!! 많은걸 배우네요... :)

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