该参数对UnsafeMutablePointer <type> .alloc()?</type>有什么意义?

时间:2015-02-12 14:44:15

标签: pointers swift generics

假设我想在Swift中为Int创建指针。从我所看到的我做this

let pointer = UnsafeMutablePointer<Int>.alloc(1)
pointer.memory = 100
println(pointer)        //prints 0x00007f8672fb7eb0
println(pointer.memory) //prints 100

现在,当我致电UnsafeMutablePointer<Int>.alloc(1)时,1表示什么?我假设它是从指针地址开始在内存中分配的Int的数量 因此1将分配 8个字节2将分配 16个字节,依此类推...... 这是真的吗?

如果是这样,Swift使用泛型类型为UnsafeMutablePointer<Type>分配了多少内存?

1 个答案:

答案 0 :(得分:4)

  

现在,当我致电UnsafeMutablePointer<Int>.alloc(1)时,1是什么?   表示?我假设它在内存中分配的Ints数量开始   来自指针地址。

这是分配内存的项目数。

  

因此1将分配8个字节,2个将分配16个字节,依此类推......   这是真的吗?

几乎。一个Int可以是4或8字节,具体取决于 架构。

  

如果是这样,Swift分配了多少内存   UnsafeMutablePointer<Type>使用泛型类型?

您无法为通用类型分配内存。在那里 调用alloc(),必须知道类型参数T 明确地或从上下文推断。