我有这段代码,
var buffers [2]uint32
gl.GenBuffers(2, /* What here! */)
gl.GenBuffers()要求一个int32和一个* uint32。在C语言中,您将传递一个静态数组或一个指向它的指针,一切都会很好,但是在Golang中, slice 将不起作用...
我可以想到的两种方法是分配动态数组,或将 slice 转换为指针数组,
不好的是,我也不知道该怎么办...
我尝试了new,但它实际上不像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])
}
游乐场:https://play.golang.org/p/J-tKynWv5P1
输出:
2 0x10410020
int32 *uint32