У меня есть для l oop, содержащее приблизительно 1 000 000 итераций вызова метода AABBTree.all_intersections () . Таким образом, я использую # pragma omp parallel для , чтобы ускорить программу. Тем не менее, я получил сообщение об ошибке «Куча была повреждена». Файл cpp выглядит примерно так:
Polyhedron polyhedron;
Facet_tree m_facet_tree(faces(m_polyhedron).first, faces(m_polyhedron).second, m_polyhedon);
#pragma omp parallel for
for (int i = 0; i<100; ++i){
Plane plane = Plane(1, 0, 0, 0);
// Compute intersections
typedef std::vector<Facet_tree::Object_and_primitive_id> Intersections;
Intersections intersections;
m_facet_tree.all_intersections(plane, std::back_inserter(intersections));
}
Наконец, программа прекратит работу:
~Handle()
{
if ( PTR && (--PTR->count == 0))
delete PTR;
}
Каковы возможные причины этой проблемы? Большое спасибо!