Au moment de l'appel de cette ligne
const sf::Uint8 * pixels = t->getTexture().copyToImage().getPixelsPtr();
Il se passe ceci:
on appelle
getTexture()
qui te renvoie une référence vers la texture courante de t.
Puis on appelle
copyToImage()
qui va créer une image au moment de cet appel (qui est donc une fonction lente). L'usage normal de cette fonction est la construction d'une véritable image comme ceci
sf::Image myImage(t->getTexture().copyToImage());
Finalement, tu récupères le pointeur de l'image que tu viens de créer, et c'est celui ci que tu stockes. A aucun moment tu ne récupères réellement l'image.
A chaque appel de copyToImage() tu récrées une image à partir de la texture actuelle, avec à chaque fois une adresse différente.