Arrays 在Go中,如何将[16]float32转换为*float32

Arrays 在Go中,如何将[16]float32转换为*float32,arrays,pointers,go,Arrays,Pointers,Go,我正在使用一个数学库来处理投影矩阵算法 我使用的OpenGL库需要表示矩阵的“*float32”。 然而,我所能得到的是“[16]32” 如何创建*float32变量并使其指向[16]float32数组的开头 谢谢。工作样本: package main /* float Add(float *fs) { fs[15]=15.5; return fs[0]+fs[1]; } */ import "C" import "fmt" import "unsafe" func main()

我正在使用一个数学库来处理投影矩阵算法

我使用的OpenGL库需要表示矩阵的“*float32”。 然而,我所能得到的是“[16]32”

如何创建*float32变量并使其指向[16]float32数组的开头

谢谢。

工作样本:

package main

/*
float Add(float *fs)
{
  fs[15]=15.5;
  return fs[0]+fs[1];
}
*/
import "C"

import "fmt"
import "unsafe"

func main() {
    ary := [16]float32{1.5, 2.0}
    fs := (*C.float)(unsafe.Pointer(&ary[0]))
    r := float32(C.Add(fs))
    fmt.Println(r, ary[15]) //3.5 15.5
}
不安全。指针(&var[0])
(按需强制转换)