Думаю, я понял это. Оказывается, то, что я пытаюсь сделать, называется "множественным косвенным воздействием".
как заметил @Peter, было нетривиально просто поменять указатели таким образом.
virtual Node* update(Node** neighbors[8], char& c);
Это было то, что мне было нужно, когда я передаю массив указателей указателям в сохраненном массиве, чтобы я мог поменять их местами на верхнем уровне.
int* myArrayOfInts[MAP_SIZE*MAP_SIZE];
Где я могу хранить точный список всех объектов.
Тогда, когда мне нужно манипулировать им как двумерным массивом:
int*(*map)[MAP_SIZE] = (int*(*)[MAP_SIZE])myArrayOfInts; //Cast as 2d Array temporarily.
Теперь я могу рассматривать карту как обычный двумерный массив указателей.
Теперь становится проще настроить родительский массив, передав указатель на массив указателей как:
&map[x][y]
Или, в моем случае, Хранение их в массиве указателей на указатели массива ....
Node** neighbors[8];
neighbors[0] = &map[x][y];
Затем я могу передать это функции, что позволит мне менять значения без копирования и перемещения целых объектов.
Йо, собака, я собираю тебе указатели лейк, поэтому мы ставим указатели на твои указатели в массивах указателей указателей .....