STL 컨테이너 잘못된 사용 -0-

엔진 수업 중에 리소스관리를 위하여 리소스 매니저를 두고 매니저의 자료 구조를 tree로 할려고 STL 맵을 사용하고
리소스매니저 소멸자 호출시에 맵안에 동적으로 할당된 모든 데이타를 삭제하는 형식으로 코딩을 하였는데
매번 뻑이나는 것이었다.

대략 코드는..

for( map<string, IResource*>::iterator iter = mapContainer.begin() ; iter != mapContainer.end() ; ++iter)
{
    delete (iter->second);
}
mapContainer.clear();

이렇고 에러 메시지는

Debug Assertion Failed!
Expression:map/set iterator not incrementable
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

이런 경고 문이 나왔다.

삭제 작업을 디버깅 해보니 반복자가 순환하다가 자기를 잃어버리고 뻑이나는 것이었다.
뭔가 계속 뒤져보고 검색도해고 했는데도 찾을 수가 없었다.

리소스에 관련된 코드를 이것저것 막 찾아보니
리소스 소멸자에서 리소스매니저의 맵 원소를 지우는 코드가 있었다 ㅠㅠ
예전에 작성한 코드였는데 제거할때 확실하게 제거 안해서 몇시간 동안 고생을 ㅠㅠ

컨테이너를 쓸때 삭제 작업을 조심해서 해야겠다 ㅠㅠ

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 랄라라랄라 | 2008/01/10 10:10 | 나의 삽질 퍼레이드ㅠㅠ | 트랙백(3) | 덧글(0)

트랙백 주소 : http://whiletrue.egloos.com/tb/1267609
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Effexor. at 2008/06/23 12:18

제목 : Effexor withdrawal.
Effexor. Effexor combination therapy. Generic effexor. Effexor have any side effects. Effexor xr withdrawal symptoms....more

Tracked from Soma. at 2008/06/24 06:33

제목 : Soma next day delievery.
Soma next day delievery. Soma online sales. Soma....more

Tracked from Voyforums bu.. at 2008/06/24 20:25

제목 : Viagra buy.
Buy viagra online. How to buy viagra on line. Buy discount viagra online. Buy viagra....more

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶