temp en ese código es, como bien ahs puesto, NULL, y no un Tile.
Si trabajas con un vector de punteros, lo ideal, salvo que requieras lo contrario, es que intercambies los punteros, y no todos los campos de las estructuras a las que apuntan.
Para ello, bastaría un:
Si trabajas con un vector de punteros, lo ideal, salvo que requieras lo contrario, es que intercambies los punteros, y no todos los campos de las estructuras a las que apuntan.
Para ello, bastaría un:
Código (cpp) [Seleccionar]
Tile* temp = ref[index1];
ref[index1] = ref[index2];
ref[index2] = temp;