ホームページ >バックエンド開発 >Golang >Go で整数値を Int ポインタに安全に割り当てるにはどうすればよいですか?

Go で整数値を Int ポインタに安全に割り当てるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 07:11:12147ブラウズ

How to Safely Assign an Integer Value to an Int Pointer in Go?

Go で Int ポインタを Int 値に設定する

Go で整数値を int ポインタに代入するときは、次のことを確認することが重要ですポインタ自体は nil ではありません。このエラーは、nil ポインターを逆参照しようとしたときに発生し、実行時パニックを引き起こします。

解決策は、有効なメモリー位置を指すようにポインターを初期化することです。これは、新しい int にメモリを割り当て、それへのポインタを返す new() 組み込み関数を使用して実現できます。以下に例を示します。

var guess *int
fmt.Println(reflect.TypeOf(guess))  // Outputs: *int
guess = new(int)                  // Allocates memory for a new int
*guess = 12345                    // Dereferences the pointer and sets the value to 12345
fmt.Println(guess)                 // Outputs: 0x10414028 (address of the allocated memory)

この変更により、ポイントされた値にアクセスする前に、ポインターが割り当てられたメモリ位置を確実にポイントするようになります。あるいは、変数のアドレスをポインタ変数に直接割り当てることもできます。

value := 12345
guess = &value  // Assigns the address of value to guess pointer

この場合、ポインタは値変数のメモリ位置を指し、ポインタを介して値を操作できるようになります。 .

ポインタを介して指定された値を変更すると、それが参照する変数の値にも影響することに注意してください。逆に、参照先の変数の値を直接変更すると、参照先の値も変更されます。ポインターと参照される変数の間のこの二重の関係は、ポインターの使用において理解する必要がある重要な概念です。

以上がGo で整数値を Int ポインタに安全に割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。