如果我将一个float数组分配给Swift游乐场中的CMutablePointer<Float>
,如下所示,我得到一个运行时崩溃:
var floatArray:Float[] = Array(count: 3, repeatedValue: 2.5)
var floatPointer:CMutablePointer<Float> = &floatArray
我的代码是否不正确(如果是这样?),还是应该将其作为Apple的错误提交?
答案 0 :(得分:1)
你的参数是一个标签,所以你必须这样做
var floatArray:Float [] = Array(count:3,repeatedValue:2.5)
var floatPointer:CMutablePointer<Float[]> = &floatArray
答案 1 :(得分:0)
您的代码,在编译并在Playground之外运行时:
var floatArray:Float[] = Array(count: 3, repeatedValue: 2.5)
var floatPointer:CMutablePointer<Float> = &floatArray
floatPointer.withUnsafePointer { (myPtr1 : UnsafePointer<Float>) -> () in
var x = myPtr1.memory
println("float array element 0 is \(x)")
}
打印2.5