Я продолжаю сталкиваться с этой ошибкой "Debug assertions failed!"
при запуске моей программы в режиме отладки.Я попытался найти эту ошибку на веб-сайте Visual C ++, но объяснения для меня слишком сложны, и они не имеют никакого сходства с тем, что я думаю о проблеме.
Я просмотрел свой коди сузили точку, в которой возникает ошибка.Кажется, это происходит в той части кода, где я вручную удаляю целую кучу массивов кучи, прежде чем компьютер перейдет к следующей части программы.Когда я закомментирую раздел, который освобождает старые массивы кучи, программа работает отлично.
Есть идеи, что здесь происходит? Мои знания в области программирования все еще относительно просты.
Спасибо
Я использую Visual C ++ 2008.
Дополнительная информация:
Точка останова срабатывает в этом блоке кода:
void operator delete(
void *pUserData
)
{
_CrtMemBlockHeader * pHead;
RTCCALLBACK(_RTC_Free_hook, (pUserData, 0));
if (pUserData == NULL)
return;
_mlock(_HEAP_LOCK); /* block other threads */
__TRY
/* get a pointer to memory block header */
pHead = pHdr(pUserData);
/* verify block type */
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));//<---- break point triggers
_free_dbg( pUserData, pHead->nBlockUse );
__FINALLY
_munlock(_HEAP_LOCK); /* release other threads */
__END_TRY_FINALLY
return;
}
Этот код находится на вкладке: dbgdel.cpp
Раздел моего кода, который я "сузил" и вызывает эту проблему, выглядит так:
delete [] topQuadanglesPositions;
delete [] fourClamps;
delete [] precaculatedClamp1;
delete [] precaculatedClamp2;
delete [] precaculatedClamp3;
delete [] precaculatedClamp4;
delete [] area;
delete [] hullConfiguration;
delete [] output;
delete [] prunedListClamp1;
delete [] prunedListClamp2;
delete [] prunedListClamp3;
delete [] prunedListClamp4;
delete [] numValidLocations;
Еслия закомментирую этот раздел, программа работает нормально.