相关疑难解决方法(0)

使用指向数组的指针

我正在玩谷歌的Go语言,我遇到了一些在C语言中相当基本的东西,但是到目前为止我看到的文档似乎没有涉及

当我将一个指向一个切片的指针传递给一个函数时,我假设我们有一些方法可以访问它,如下所示:

func conv(x []int, xlen int, h []int, hlen int, y *[]int)

    for i := 0; i<xlen; i++ {
        for j := 0; j<hlen; j++ {
            *y[i+j] += x[i]*h[j]
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

但Go编译器不喜欢这样:

sean@spray:~/dev$ 8g broke.go
broke.go:8: invalid operation: y[i + j] (index of type *[]int)
Run Code Online (Sandbox Code Playgroud)

足够公平 - 这只是猜测.我有一个相当简单的解决方法:

func conv(x []int, xlen int, h []int, hlen int, y_ *[]int) {
    y := *y_

    for i := 0; i<xlen; i++ {
        for j := 0; j<hlen; j++ {
            y[i+j] …
Run Code Online (Sandbox Code Playgroud)

pointers go

32
推荐指数
3
解决办法
6万
查看次数

标签 统计

go ×1

pointers ×1