在Golang中添加指向Slice的指针

时间:2016-08-22 07:54:33

标签: variables pointers go slice

我想附加一个指向切片的指针。是否可能..?在Partentnode.children中是一个切片,我想用X作为指针附加它。

https://play.golang.org/p/ghWtxWGOAU

func Tree(Parentnode *Node) {
    if IsvisitedNode(Parentnode.currentvalue - 1) {
        m := MovesArray[Parentnode.currentvalue-1]
        for j := 0; j < 8; j++ {
            if m[j] != 0 {
                var X *Node
                X.parentnode = Parentnode
                X.currentvalue = m[j]
                if IsvisitedNode(m[j]) {
                    Parentnode.children = append(Parentnode.children, *X)
                    Tree(X)
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你有一个错误。 在主要内容中设置Y.currentvalue = 1。 然后在Tree当前值前往64

X.currentvalue = m[j]
fmt.Printf("cv: %v\n",X.currentvalue) //walks to 64
if IsvisitedNode(m[j]) {

IsvisitedNode中,您针对具有64个索引的visithistory测试该索引,从而在索引63处停止。 - &gt;索引错误

var visithistory [64]bool

func IsvisitedNode(position int) bool {
    if visithistory[position] == true {

如果设置var visithistory [65]bool,事情就会奏效,但我认为你需要在某种程度上重新考虑逻辑。