Я использую новый оператор для создания динамически выделенного массива (я использую этот, потому что я хочу сохранить накладные расходы на использование вектора). Ошибка возникает в деструкторе, говоря, что освобожденный указатель не был выделен, хотя, очевидно, это было. Конструкторы и деструкторы являются следующие:delete [] Указатель освобождения не был назначен
~Path() {
printf("Path Destructor\n");
if(points) {
delete[] points;
}
}
Path(const std::vector<PathPoint>& points_) {
size = points_.size();
points = new PathPoint[size];
int i = 0;
for(const PathPoint& p : points_) {
points[i++] = p;
}
printf("Path created\n");
}
Что было 'points_.size()'? Существуют ли другие конструкторы? – dlf
Какие служебные данные памяти для вектора? – Borgleader
Определили ли вы конструктор копирования и оператор присваивания копии? – quantdev