假设我想在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>
分配了多少内存?
答案 0 :(得分:4)
现在,当我致电
UnsafeMutablePointer<Int>.alloc(1)
时,1是什么? 表示?我假设它在内存中分配的Ints数量开始 来自指针地址。
这是分配内存的项目数。
因此1将分配8个字节,2个将分配16个字节,依此类推...... 这是真的吗?
几乎。一个Int
可以是4或8字节,具体取决于
架构。
如果是这样,Swift分配了多少内存
UnsafeMutablePointer<Type>
使用泛型类型?
您无法为通用类型分配内存。在那里
调用alloc()
,必须知道类型参数T
明确地或从上下文推断。