Fonction modifiant la variable de pointeur
Le code fourni implique une fonction clickOnBubble qui tente de modifier une variable de pointeur targetBubble. Cependant, les modifications apportées au sein de la fonction ne se reflètent pas dans la portée de l'appelant. En effet, la fonction transmet une copie du pointeur, pas une référence à celui-ci.
Pour modifier une variable de pointeur à partir d'une fonction, il faut utiliser une référence au pointeur ou un pointeur vers un pointeur.
Option 1 : Référence au pointeur
Dans cette approche, une référence au pointeur est passée en argument au function :
void clickOnBubble(sf::Vector2i &mousePos, std::vector<Bubble *>& bubbles, Bubble *&targetBubble) { targetBubble = bubbles[i]; }
Cette référence permet à la fonction de modifier directement la valeur du pointeur targetBubble, affectant la variable d'origine dans la portée de l'appelant.
Option 2 : Pointeur vers pointeur
Alternativement, un pointeur vers un pointeur peut être utilisé :
void clickOnBubble(sf::Vector2i &mousePos, std::vector<Bubble *>& bubbles, Bubble **targetBubble) { *targetBubble = bubbles[i]; }
Dans ce cas, la fonction reçoit un pointeur vers le pointeur targetBubble. La modification de la valeur pointée par le pointeur (c'est-à-dire *targetBubble) modifie indirectement le pointeur targetBubble d'origine dans la portée de l'appelant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!