У меня есть приложение, которое пытается заполнить пару. Из ниоткуда приложение вылетает.
Анализ Windbg на аварийном дампе предполагает:
PRIMARY_PROBLEM_CLASS: INVALID_POINTER_READ
DEFAULT_BUCKET_ID: INVALID_POINTER_READ
STACK_TEXT:
0389f1dc EPFilter32! std::vector<std::pair<unsigned int,unsigned int>,std::allocator<std::pair<unsigned int,unsigned int> > >::size+0xc
INVALID_POINTER_READ_c0000005_Test.DLL! std::vector_std::pair_unsigned_int,
unsigned_int_,std::allocator_std::pair_unsigned_int,unsigned_int_____::size
Ниже приведена привязка кода в коде, где он не работает:
for (unsigned i1 = 0; i1 < size1; ++i1)
{
for (unsigned i2 = 0; i2 < size2; ++i2)
{
const branch_info& b1 = en1.m_branches[i1]; //Exception here :crash
const branch_info& b2 = en2.m_branches[i2];
}
}
, где branch_info
равно std::pair<unsigned int,unsigned int>
и en1.m_branches[i1]
извлекает мне пару значений.