초보자 용 느낌이지만 느낄 수없는 것 같습니다. std :: vector의 항목을 반복하고 싶습니다. 그래서이 반복자를 사용하여 시도 끝에 시작하고 0으로 내 방식대로 일 : 나는 실제로 반대 순서대로 반복 할 것을 깨달았다, 그러나루프가 시스템 오류를 일으키는 경우 되돌리기
for (unsigned int i = 0; i < buffer.size(); i++) {
myclass* var = buffer.at(i);
[...]
}
: 현재 나는이 루프를 사용
for (unsigned int i = buffer.size()-1; i >= 0; i--) {
myclass* var = buffer.at(i);
[...]
}
그러나 단순히 오래된 줄을 새로운 줄 (물론 다시 컴파일)로 바꾸면 제대로 실행되지 않고 코드를 반복하면서 프로그램이이 줄에 처음 충돌 할 때 충돌을 일으키고, 이 오류와 함께 :
http://i43.tinypic.com/20sinlw.png
"[프로그램] 작동이 중지되었습니다."대화 상자가 이어집니다.
또한 Code : Blocks에 따라 프로그램이 종료 코드 3을 반환합니다 (this article이 믿어 진다면)는 ERROR_PATH_NOT_FOUND : 시스템이 지정된 파일을 찾을 수 없음을 의미합니다.
어떤 조언이 필요합니까? for 루프에 뭔가 빠져서 메모리 문제가 발생했을 수 있습니까? 반환 코드 3 또는 기사가 오해의 소지가 있으며 "경로를 찾을 수 없음"을 실제로 의미하지는 않습니까?
우선, 디버거에서 실행 해 보셨습니까? 그것은 충돌의 정확한 위치를 정확히 찾아내는 데 도움이되며 변수를 검사하여 원인을 파악할 수 있습니다. 둘째, 두 번째 루프에서 크기가 0보다 큰가요? –
'unsigned int' 인덱스로 -1에 액세스 할 수 있습니까? '2 ** 32-1'과 같이 더 많이 액세스하고 있습니다. – Kaz
긴장을 풀고 이터레이터를 사용하십시오 ... –