崩溃在Swift </float>中将Float []分配给CMutablePointer <float>

时间:2014-06-09 19:57:44

标签: swift

如果我将一个float数组分配给Swift游乐场中的CMutablePointer<Float>,如下所示,我得到一个运行时崩溃:

var floatArray:Float[] = Array(count: 3, repeatedValue: 2.5)
var floatPointer:CMutablePointer<Float> = &floatArray

我的代码是否不正确(如果是这样?),还是应该将其作为Apple的错误提交?

2 个答案:

答案 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