У меня есть класс, в котором я хочу использовать большое количество векторов.
class Bar {
Bar ();
std::vector<Foo> * _grid;
void someFunction ();
}
Bar::Bar () {
_grid = (std::vector<Foo> *)malloc(_gridSize * sizeof(std::vector<Foo>);
memset(_grid, 0, _gridSize * sizeof(std::vector<Foo>);
}
void Bar::someFunction () {
int index = 0;
std::vector<Foo> someVariable = _grid[index];
}
Однако, как только я звоню someFunction()
, я получаю сообщение об ошибке vector iterators incompatible
, как только в _grid[index]
появляется какой-либо контент. Если вектор пуст, он работает.
Я читал о сообщении об ошибке, выдаваемом недействительными итераторами, однако, поскольку на этом этапе я ничего не меняю в векторах, я не понимаю, что здесь не так.