2016-05-30 4 views
1

私は数学ライブラリを使って投影行列演算を処理しています。Goで、[16] float32を* float32に変換するには

私が使用しているOpenGLライブラリには、マトリックスを表す "* float32"が必要です。 しかし、私が利用できるのは "[16] float32"

* float32変数を作成して[16] float32配列の先頭を指すようにするにはどうすればよいですか?

ありがとうございました。

+2

'unsafe.Pointer(&VAR [0])'(必要に応じてキャスト) –

答えて

1

ワーキングサンプル:

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 
} 
関連する問題