我有这段代码,

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

09-18 22:27