2010-07-14 3 views
-1

이것은 내 첫 번째 질문은 stackoverflow입니다.C++에서 디버그 어설 션 오류

내가 프로그램을 디버깅하려고하지만 난 그것을 실행하려고하면, 그것은 디버그 어설 션이 실패하고 나는 그것을 중단 점을 디버깅 시도 할 때이 기능에 벡터에 나를 걸립니다 생성 오류 메시지와 함께 종료 문제가 어디 있는지하는 수 및 이동할 수있는 곳

#if _HAS_ITERATOR_DEBUGGING 
_Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector) 
    { // construct with pointer _Ptr 
    _SCL_SECURE_VALIDATE(_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast)); 
    this->_Adopt(_Pvector); 
    _Myptr = _Ptr; 
    } 

이 라인은

_SCL_SECURE_VALIDATE(_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast)); 

제안하십시오. 내가 사용하고있는 반복자에 문제가 있는가?

감사합니다.

+4

이 어설 션을 유발하는 코드를 게시해야합니다. – bshields

+0

안녕하세요. 에디터에는 0이있는 버튼과 선택을 코드로 지정하는 버튼이 있습니다. – Anycorn

답변

0

이 오류를 발생시키는 코드를 게시 할 수 있습니까? 디버그 검사 (가능성이있는 경계 또는 유사한 것)가 실패한 것처럼 보이지만 함수에 대한 입력이 어떻게 든 문제가되는 경우 해당 어설 션은 실패합니다. 우리가 정말로 더 이상 당신을 도울 수 있도록 우리는이 동작을 호출하는 코드를보아야 할 것입니다.

2

당신이 당신의 코드를 게시해야한다고 생각 아닌 STL의 주장 코드 (분명히이 하나가 조사 :

을 어쨌든 가장 쉬운 아니라,이 주장의 메시지는 일반적으로 잘못된 인덱스를 액세스하기위한 시도를 나타냅니다 (범위를 벗어난) 또는 비슷 한 쓰기 작업이 std::vector 또는 그 주변의 래퍼에 있습니다.

예를 들어 일련의 삽입 이후에 무효화되는 반복기를 저장하는 경우에도 발생할 수 있습니다.