将切片转换为数组指针

时间:2018-02-12 02:37:27

标签: pointers opengl go slice

我有这段代码,

var buffers [2]uint32
gl.GenBuffers(2, /* What here! */)

gl.GenBuffers()要求输入int32和* uint32。在C中,你传递一个静态数组或一个指向它的指针,一切都会好,但在Golang中,切片不起作用......

我能想到的两种方法是分配动态数组,或将切片转换为指针数组,

不好的是,我不知道该怎么做...... 我试过新的,但它并不像malloc那样真正起作用...... 我很难过,任何帮助都会受到很大的限制!

1 个答案:

答案 0 :(得分:1)

写:

var buffers [2]uint32
gl.GenBuffers(int32(len(buffers)), &buffers[0])

例如,

package main

import (
    "fmt"
)

func main() {
    var buffers [2]uint32
    fmt.Printf("%d %p\n", int32(len(buffers)), &buffers[0])
    fmt.Printf("%T %T\n", int32(len(buffers)), &buffers[0])
}

游乐场:https://play.golang.org/p/J-tKynWv5P1

输出:

2 0x10410020
int32 *uint32