ホームページ > バックエンド開発 > C++ > C の関数内からポインタ変数を変更するにはどうすればよいですか?

C の関数内からポインタ変数を変更するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-03 12:03:44
オリジナル
592 人が閲覧しました

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

ポインター変数を変更する関数

提供されたコードには、ポインター変数 targetBubble を変更しようとする関数 clickOnBubble が含まれています。ただし、関数内で行われた変更は呼び出し元のスコープには反映されません。これは、関数がポインタへの参照ではなく、ポインタのコピーを渡しているためです。

関数内からポインタ変数を変更するには、ポインタへの参照またはポインタへのポインタを利用する必要があります。

オプション 1: ポインターへの参照

このアプローチでは、ポインターへの参照が渡されます。関数への引数として:

void clickOnBubble(sf::Vector2i &mousePos, std::vector<Bubble *>& bubbles, Bubble *&targetBubble) {
    targetBubble = bubbles[i];
}
ログイン後にコピー

この参照により、関数は targetBubble ポインターの値を直接変更し、呼び出し元のスコープ内の元の変数に影響を与えることができます。

オプション2: ポインタからポインタ

または、ポインタからポインタは次のようにすることもできます。 used:

void clickOnBubble(sf::Vector2i &mousePos, std::vector<Bubble *>& bubbles, Bubble **targetBubble) {
    *targetBubble = bubbles[i];
}
ログイン後にコピー

この場合、関数は targetBubble ポインターへのポインターを受け取ります。ポインター (*targetBubble) が指す値を変更すると、呼び出し元のスコープ内の元の targetBubble ポインターが間接的に変更されます。

以上がC の関数内からポインタ変数を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート