route는 지역으로 선언된 배열이므로 dijkstra 함수가 종료되는 순간 함께 소멸되는 배열입니다. 따라서 이 주소에 이후에 접근하려고 하면 안 됩니다.
1504번 - 특정한 최단 경로
몇몇 예제에서 잘 돌아가서 제가 잠시 함수가 끝나도 주소 내용물이 남는다고 착각하고 있었네요.. 그러면 함수가 끝나는 순간 그 안의 정보는 전부 사라지는 건가요? 아니면 그 정보는 계속 해당 주소에 남겨져 있다가 나중에 덮어씌워져서 오류가 나는건가요?
배열 주소를 반환하는 함수의 경우 끝나고 해당 주소안의 정보가 덮어씌워질 우려가 있기 때문에 함수의 결과로 배열을 얻고 싶어서 주소를 반환하는 함수가 위험한 문법이라면 그것과 다르게 배열을 반환하는 방법이 있을까요??
댓글을 작성하려면 로그인해야 합니다.
ttiger0114 3년 전
디익스트라 함수를 a,b의 최솟값을 반환하도록 하는 것이 아니라 a가 갈수 있는 모든 정점의 최소 거리를 가진 배열의 주소를 반환하도록 하였습니다.
이렇게 한 이유는 각 정점간의 거리를 반환할 경우 디익스트라 계산을 5번해야 하지만 정점이 갈수 있는 모든 경우를 반환할 경우 계산을 세번만 하면 되기 때
문에 최초에 이렇게 했으나 계속 런타임 오류가 걸려 그냥 함수 전체를 유지한 채로 반환값만 정점간의 거리를 반환하도록 하니 디익스트라 알고리즘의 횟수
가 증가했는데도 불구하고 런타임에러가 걸리지 않으며 정답처리가 되었습니다. 계산상의 오류가 마땅히 없는것 같은데 이러한 이유가 왜 일어나는지 궁금합
니다