pointers - 将 slice 转换为数组指针

标签 pointers opengl go slice

我有这段代码,

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/

相关文章:

go - 如何列出指向golang struct所有字段的指针?

GORM 不忽略 `gorm:"-"` 字段

c++ - 寻找新的内存地址? C++

iphone - 从 NSDictionary 设置 CGRect.frame.size 的值

c++ - 需要帮助组织 BSP 几何渲染的类型差异

opengl - 在片段着色器中,为什么我不能使用平面输入整数来索引 sampler2D 的统一数组?

gomobile 命令错误 "No android NDK path is set "

c - 普通 C - 数组指针

c++ - 使用自己的指针遍历数组元素

c - 为透视图设置坐标系?