IT한 것

Dangling Pointer

lovian 2006. 11. 17. 17:05
대체 무슨 말인가 했다.

검색해보니 한 포인터가 가르키는 주소가 할당되지 않은 공간이란 얘기다.

Devpartner로 누수검사를 잘~ 마치고 프로그램을 종료시키는데, 순간 오류 목록에 dangling pointer가 주르륵 늘어나기 시작했다.

좀더 검색해보니 구 KLDP에서 이에 대해 다룬 내용이 있었다. (현재 링크는 바뀐듯하다. 구글의 저장된 페이지보기 기능으로 봤음)

Vector를 사용하는 중에 push_back 메서드로 내용을 추가하는데 위와 같은 문제가 발생했다고 한다. (나 역시 동일한 상황이다).
vector에 내용을 추가하면서 그 크기가 늘어나는 과정에 뭔가가 있나보다.
그래서 push_back 을 하기 전에 reserve 메서드로 미리 vector의 크기를 늘려주면 위와 같은 오류메시지는 나타나지 않는다고 한다.

자세한 이유를 알았으면 좋은데, 되게 귀찮다..