2012년 6월 15일 금요일

[STL] list iterator not dereferencable 오류 메시지

 위 메시지에서 dereferencable 이라는 사전에도 잘 안나오는 단어는 역참조라는 뜻인데, 이걸 해석하느라 고심할 필요는 없고 한마디로 STL에서 이터레이터로 루프를 돌릴때 로직이 잘못되었다고 보면 된다.


 흔히 범하는 실수로는 반복자 삭제시 무효화 현상, 루프를 돌릴때 조건을 잘못 주는 등 여러가지가 있다.

 이런 오류는 컴파일러에서 발견하지 못하고 실행중에 발생하므로 찾기가 어려운 편이다.

 이런 경우 디버그를 할 때 반복자 관련 구문을 잘 살펴보면 된다.



list 뿐 아니라 vector 나 map 도 마찬가지다.




댓글 없음:

댓글 쓰기