Я получал неверные данные из приложения, которое писал с использованием C ++ в Visual Studio 2k3, поэтому я решил отладить его. Потом я обнаружил, что это исключение, которое я не могу отследить.
Затем я разместил несколько блоков try / catch и low, и вот, когда я не отлаживаю, нет исключения. То есть у меня есть код, который выглядит так:
std::vector<MyClass*> ListOfStuff;
.
.
.
try
{
.
.
.
const MyClass * localPointer = ListOfStuff[i]; //This is where the exception occurs
.
.
}
catch (...)
{
int x = 0; //place break here
}
Так что, если я буду шаг за шагом проходить через код, я получу исключение и получу улов. Но если я просто позволю ему работать с точкой останова внутри catch, ничего не произойдет. Использование итератора имеет такое же поведение. И я могу успешно проверить размер вектора, чтобы я знал, что я в пределах.
Кто-нибудь может сказать мне, что происходит? Если это имеет значение, я использую некоторые стандартные библиотеки Windows и openGL.