登录
首页 >  Golang >  Go问答

在设置一个结构变量为另一个结构变量时发生错误

来源:stackoverflow

时间:2024-02-29 11:54:25 410浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《在设置一个结构变量为另一个结构变量时发生错误》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我目前在尝试在我的结构之一中设置与上面行中定义的另一个变量等效的变量时遇到问题。通过该描述,这可能没有意义,但是我下面的代码应该描述我想要做什么。

type Quick struct{
    Slice   []int
}


// CreateQuicksortObj creates a quicksort object 
func CreateQuicksortObj(size int) (*Quick) {
    var q *Quick
    var unsortedSlice []int

    unsortedSlice = GenerateSlice(size) // this returns a []int of size: size
    q.Slice = unsortedSlice   // error occurs here

    q.shuffle()
    
    return q
}

错误如下: 恐慌:运行时错误:无效的内存地址或零指针取消引用 [信号sigsegv:分段违规代码=0x1 addr=0x0 pc=0x10ab52e]


解决方案


您将 q 声明为指针,但您取消引用它而不将其分配给值。您可以执行以下操作之一:

将其声明为值,返回地址

var q quick
...
return &q

将其声明为指针,但对其进行初始化:

var q = &Quick{}
...
return q

今天关于《在设置一个结构变量为另一个结构变量时发生错误》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>