2016-03-28 4 views
0

iOSプロジェクトにCライブラリを実装したいと思います。私は迅速な言葉を使っています。私はvar ar: [Double] Xcodeのような迅速な内部初期化する場合Cライブラリで使用する配列のUnsafeMutablePointer

double ar[6]; 
///... 
err = c_lib_func(ar); 

私は

を使用する必要が言う: - 出力値が格納されている - AR通常C二重アレイである

Iは入力パラメータが機能を有しますUnsafeMutablePointer。しかし、ドキュメントの中で私はUnsafeMutablePointerのn - lenght配列を初期化する方法を見つけていない。私はちょうどこのような何かをすることができます: var ar : UnsafeMutablePointer<Double>。しかし、私は6長配列として初期化する方法を理解することができます。私を助けてください。 [Double]はあなたが後にしているものではありませんdouble値の配列である、スウィフトで

/Users/admin/Documents/projects/myApp/myApp/file.swift:46:46: Cannot convert value of type '[Double]' to expected argument type 'UnsafeMutablePointer'

+0

'var ar:[Double]'で 'c_lib_func(ar)'を呼び出すことができます。 – jtbandes

+0

@jtbandes、no。 xCodeはUnsafeMutablePointerの使用に関するエラーを表示します – Vyacheslav

+0

コードとエラーを表示してください:[ask] – jtbandes

答えて

1

私は

ar = [Double] 
err = c_lib_func(ar); 

のXcodeを使用している場合は、私にこのエラーが表示されます。あなたがUnsafeMutablePointerを初期化したい場合は、単に使用することができます。

var ar = UnsafeMutablePointer<Double>.alloc(6) 

使用ar.dealloc(6)再びメモリーを解放します。

+0

swapの中で 'dealloc'を使うことは重要ですか? – Vyacheslav

+0

はい、また、値がalloc()に渡される値と一致することも重要です。 –

関連する問題