Здесь есть две проблемы. Первый в назначении *theGrid
. Этот код скопирует исходный вектор во все, на что указывает theGrid
. Так как этот указатель неинициализирован, у вас есть Неопределенное Поведение, cra * sh, если вам повезет. Я думаю, что вы пытаетесь сделать:
theGrid = &m_myGridBlue;
Вторая проблема, которая приводит к ошибке вашего компилятора, заключается в том, как вы получаете доступ к указанному вектору. Поскольку theGrid
является указателем на вектор, вам необходимо сначала разыменовать этот указатель:
(*theGrid)[next.y * m_noGrid + next.x] = ...;
В качестве альтернативы указателю вы можете использовать ссылку
std::vector<Maze::TILE_CONTENT> &theGrid = go->team == GameObject::GT_BLUE ? m_myGridBlue : m_myGridRed;
, а затем вы можете получить доступ к содержимому theGrid
, как вы уже.