Dans le code que tu montre, cibleActuelle n'est pas une variable globale puisqu'elle est déclarée dans main(). C'est une variable locale de main(). Il est donc normal que tu ne puisse pas la modifier dans changerPerso().
Si tu veux une variable globale, il faut la déclarer en dehors de toute fonction. Et dans ce cas, pas besoin de la passer à changerPerso().
Si tu veux une variable locale, il faut passer son adresse à changerPerso(). Donc le prototype de changerPerso() doit être :
changerPerso(..., SDL_Surface **);
Et tu dois l'appeler ainsi :
changerPerso(ecran, &cibleActuelle)
Partager