У меня есть кусок кода, который работает в режиме отладки в VS2008, C ++.
Проблема в том, что когда я построчно отлаживаю код в очень странной точке кода, он вылетает и говорит:
утверждение отладки не выполнено.
Выражение: _BLOCK_TYPE_IS_VALID (pHead-> nBlockUse)
Точка сбоя находится на первой закрытой фигурной скобке (после сетки-> ребра [e] .needsUpdate = false;)
Я не понимаю, почему на фигурной скобке? это имеет смысл для вас, ребята?
Что происходит?
for(int e=0; e<mesh->edges.size(); e++)
{
if(mesh->edges[e].valid && mesh->edges[e].v[0]>=0 && mesh->edges[e].v[1]>=0 &&
mesh->points[mesh->edges[e].v[0]].writable && mesh->points[mesh->edges[e].v[1]].writable)
{
//update v_hat and its corresponding error
DecEdge Current = DecEdge(e);
pair<Point, float> ppf = computeVhat(e);
Current.v_hat = ppf.first;
Current.error = ppf.second;
edgeSoup.push(Current);
mesh->edges[e].needsUpdate=false;
}
}