我有这段代码,
var buffers [2]uint32
gl.GenBuffers(2, /* What here! */)
gl.GenBuffers() 要求一个 int32 和一个 *uint32。在 C 语言中,您可以传递一个静态数组或指向它的指针,一切都会很好,但在 Golang 中, slice 不起作用...
我能想到的两种方法是分配动态数组,或者将 slice 转换为指针数组,
糟糕的是我也不知道该怎么做... 我试过新的,但它并不像 malloc 那样工作...... 我很难过,非常感谢任何帮助!
最佳答案
写:
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])
}
Playground :https://play.golang.org/p/J-tKynWv5P1
输出:
2 0x10410020
int32 *uint32
关于pointers - 将 slice 转换为数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738818/