【问题标题】:What meaning does the parameter have for UnsafeMutablePointer<Type>.alloc()?参数对于 UnsafeMutablePointer<Type>.alloc() 有什么意义?
【发布时间】:2015-02-12 14:44:15
【问题描述】:

假设我想在 Swift 中创建一个指向Int指针。从我所见,我会做this

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

现在,当我调用UnsafeMutablePointer&lt;Int&gt;.alloc(1) 时,1 表示什么?我假设它是从指针地址开始在内存中分配的Ints 的数量。
所以1 将分配 8 个字节2 将分配 16 个字节,依此类推...
这是真的吗?

如果是这样,Swift 使用 generic 类型为UnsafeMutablePointer&lt;Type&gt;s 分配了多少内存?

【问题讨论】:

    标签: pointers swift generics


    【解决方案1】:

    现在,当我打电话给UnsafeMutablePointer&lt;Int&gt;.alloc(1) 时,1 是什么意思 表示?我假设它在内存中分配的 Ints 数量开始 从指针地址。

    这是分配内存的项目数。

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

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

    如果是这样,Swift 分配了多少内存 UnsafeMutablePointer&lt;Type&gt; 使用泛型类型?

    您不能为泛型类型分配内存。在那个点 alloc()被调用,类型参数T必须是已知的,要么给定 明确地或从上下文推断。

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多