Définition d'un pointeur Int sur une valeur Int dans Go
Lors de l'attribution d'une valeur entière à un pointeur int dans Go, il est essentiel de s'assurer le pointeur lui-même n'est pas nul. Cette erreur se produit lors de la tentative de déréférencement d'un pointeur nul, entraînant une panique d'exécution.
La solution réside dans l'initialisation du pointeur pour qu'il pointe vers un emplacement mémoire valide. Ceci peut être réalisé en utilisant la fonction intégrée new(), qui alloue de la mémoire pour un nouvel int et renvoie un pointeur vers celui-ci. Voici un exemple :
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)
Cette modification garantit que le pointeur pointe vers un emplacement mémoire alloué avant d'accéder à la valeur pointée. Alternativement, vous pouvez directement attribuer l'adresse d'une variable à la variable pointeur :
value := 12345 guess = &value // Assigns the address of value to guess pointer
Dans ce cas, le pointeur pointe vers l'emplacement mémoire de la variable valeur, vous permettant de manipuler la valeur via le pointeur .
N'oubliez pas que la modification de la valeur pointée via le pointeur affecte également la valeur de la variable à laquelle elle fait référence. À l’inverse, modifier directement la valeur de la variable référencée modifie également la valeur pointée. Cette double relation entre le pointeur et la variable référencée est un concept important à comprendre dans l'utilisation du pointeur.
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!