Maison > développement back-end > C++ > Comment puis-je modifier une variable de pointeur à partir d'une fonction en C ?

Comment puis-je modifier une variable de pointeur à partir d'une fonction en C ?

Linda Hamilton
Libérer: 2025-01-03 12:03:44
original
592 Les gens l'ont consulté

How Can I Modify a Pointer Variable from Within a Function in C  ?

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];
}
Copier après la connexion

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];
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal