Maison > développement back-end > Golang > Comment résoudre les erreurs « adresse mémoire invalide ou déréférencement de pointeur nul » lors du mappage de structures dans Go ?

Comment résoudre les erreurs « adresse mémoire invalide ou déréférencement de pointeur nul » lors du mappage de structures dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-14 09:56:12
original
832 Les gens l'ont consulté

How to Resolve

Erreur de débogage "adresse mémoire invalide ou déréférencement de pointeur nul" dans les opérations de mappage

Lors de l'accès aux champs de structure dans une carte, on peut rencontrer le Erreur "adresse mémoire invalide ou déréférencement de pointeur nul". Ce problème survient généralement lors d'une tentative de déréférencement d'un pointeur nul.

Dans l'exemple spécifique fourni :

condition := map[string]*guardduty.Condition{}
condition["id"].Equals = strPtr
Copier après la connexion

La condition de carte est initialisée comme une carte vide de pointeurs vers les structures *guardduty.Condition . Par conséquent, accéder à condition["id"] sans l'initialiser au préalable renverra une valeur nulle, qui ne peut pas être déréférencée pour définir le champ Equals.

Pour résoudre ce problème, vous pouvez d'abord vérifier si la clé existe dans la carte en utilisant l'approche suivante :

if cond, ok := condition["id"]; !ok { // <nil> false
    log.Println("Pointer is null")
} else {
    // Init new guardduty.Condition
    // and assign to required key
    nc := &guardduty.Condition{Equals: strPtr}
    condition["id"] = nc
}
Copier après la connexion

En effectuant cette vérification, vous pouvez vous assurer que le pointeur n'est pas nul avant de tenter de le déréférencer et de définir l'égalité champ.

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