1260번 - DFS와 BFS
DFS , BFS 입문자 입니다.
스택과 큐를 배열로 구현하여 사용하고 있습니다. ArrMax는 1000으로 define 해놓았습니다.
그래프 또한 Matrix 형식으로 2x2 배열 선언을 통해 멤버 변수로 선언을 해놓았습니다.
문제는 ArrMax 를 100으로 define 했을때는 잘 실행이 되지만,
ArrMax를 1000 으로 define 하면 console 에는 아무런 출력이 나타나지 않고 종료됩니다.
메모리문제인것 같은데..... 어떻게 해결하면 좋을까요...??
LinkedList 뿐만이 답인가요??
함수 내부에 선언되는 지역변수는 메모리 구조에서 스택 영역에 할당됩니다. 스택 영역은 프로그램마다 그 크기가 실행 시 정해져 있고, 예를 들어 VS에서 기본값은 1MB입니다. ArrMax가 1000이면 int Matrix[ArrMax][ArrMax]는 약 4MB 정도가 되기 때문에 할당하지 못하고 종료되는 것입니다.
스택 영역의 크기를 늘리는 옵션을 찾아보거나, 전역 변수를 쓰거나, 동적 할당을 하시면 됩니다.
정말 감사합니다 !!!! 많은걸 배우네요... :)
댓글을 작성하려면 로그인해야 합니다.
7slidemorning 2년 전
DFS , BFS 입문자 입니다.
스택과 큐를 배열로 구현하여 사용하고 있습니다. ArrMax는 1000으로 define 해놓았습니다.
그래프 또한 Matrix 형식으로 2x2 배열 선언을 통해 멤버 변수로 선언을 해놓았습니다.
문제는 ArrMax 를 100으로 define 했을때는 잘 실행이 되지만,
ArrMax를 1000 으로 define 하면 console 에는 아무런 출력이 나타나지 않고 종료됩니다.
메모리문제인것 같은데..... 어떻게 해결하면 좋을까요...??
LinkedList 뿐만이 답인가요??