Swift为malloc< d'd数组赋予Double值

时间:2015-11-03 18:46:33

标签: ios swift

我一直在玩swift并遇到以下问题:

var foo: Double = 5
var buffer = malloc(10)
buffer[0] = foo //Does not compile!

如何在数组中为元素指定特定值?

2 个答案:

答案 0 :(得分:5)

你正在混合C和swift,malloc(10)没有给你一个Double的数据类型,它给你一种void *我相信,这转化为unsafemutablepointer我相信如果我没记错,有人请更正如果错。

如果你想要一个可变的双打数组,那么你需要做类似

的事情
var foo: Double = 5
var buffer = [Double]()
buffer.append(foo) 

buffer.insert(foo, atIndex: 0)

如果您想保留已分配的内存,请参阅以下有关如何正确设置的答案:

Swift - how to use malloc?

并做这样的事情:

var buffer = UnsafeMutablePointer<Double>(malloc(10))

或用户3441434指出要更清洁的外观

var buffer = UnsafeMutablePointer<Double>.alloc(1)
buffer.dealloc(1)

答案 1 :(得分:1)

你可以创建一个Double

数组
var array = [Double](count: 10, repeatedValue: 0.0)

然后为其指定值:

array[9] = 1.23