lixflora   1년 전

1012번 문제를 풀던 도중에 런타임 에러를 겪었습니다. 

이런 저런 시도를 해보다가 결국에 문제를 맞기는 했습니다. 

결론적으로는 소스 코드에서 주석 처리한 부분 "v.clear();" 를 추가하니 런타임 에러가 해결되었는데요.

왜 런타임 에러를 겪게 된 건지 아직 잘 이해가 가지 않습니다 ㅠㅠ


코드에서 매 테스트케이스마다 실행 후 벡터의 모든 값이 결국에는 0으로 바뀌게 됩니다. 

그래서 굳이 초기화 과정이 필요하지 않다고 생각합니다. 

또 벡터의 크기가 증가하는 경우에는 resize 함수에서 쓰레기값이 아닌 0으로 초기화 해주는 것으로 알고 있습니다. 

런타임 에러이다 보니까 제가 생각한 것 이상으로 근본적인 문제가 있는 것 같습니다. 

런타임 에러의 내용은 DoubleFree 라고 적혀있습니다. 

고수님들 조언부탁드립니다!

invrtd_h   1년 전

resize() 함수의 init은 기존 element에 적용되지 않습니다. 추가 element에만 작용합니다.

예를 들어

TC 1 : M = 10, N = 4

TC 2 : M = 4, N = 10

일 때 resize()를 적용하면 그 결과는 4x4 벡터입니다. (size 4짜리 벡터 10개 중 4개 남기고 다 날렸으므로)

lixflora   1년 전

친절한 설명 감사합니다

덕분에 이해했습니다!!

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