gpt4 book ai didi

pointers - 戈朗 : Assigning a value to struct member that is a pointer

转载 作者:IT王子 更新时间:2023-10-29 00:49:59 25 4
gpt4 key购买 nike

我正在尝试为作为指针的结构成员分配一个值,但它在运行时给出“ panic :运行时错误:无效内存地址或零指针取消引用”...

package main

import (
"fmt"
"strconv"
)

// Test
type stctTest struct {
blTest *bool
}

func main() {

var strctTest stctTest
*strctTest.blTest = false

fmt.Println("Test is " + strconv.FormatBool(*strctTest.blTest))

}

运行时错误似乎来自 *strctTest.blTest = false 的赋值,但为什么呢?如何将其设置为 false?

最佳答案

为什么会报错?因为指针只指向。它不会创建任何指向AT 的东西。你需要这样做。

如何设置为false?这完全取决于您将其设为指针的原因

这个的每个副本都应该指向同一个 bool 值吗?然后应该在创建函数中为其分配一些空间。

func NewStruct() *strctTest {
bl := true
return &strctTest{
blTest: &bl,
}
}

用户是否应该将其指向他自己的 bool 值?那么在创建对象的时候需要手动设置。

func main() {
myBool := false
stctTest := strctTest{
blTest: &myBool
}

fmt.Println("Test is " + strconv.FormatBool(*strctTest.blTest))

}

关于pointers - 戈朗 : Assigning a value to struct member that is a pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43811652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com