代码之家  ›  专栏  ›  技术社区  ›  Marcus Rossel

UnsafeMutablePointer<Type>.alloc()的参数有什么意义?

  •  2
  • Marcus Rossel  · 技术社区  · 10 年前

    假设我想创建一个 指针,指针 Int 在Swift中。从我所看到的我会做的 this :

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

    现在,当我打电话的时候 UnsafeMutablePointer<Int>.alloc(1) ,什么 1 标志我假设它是 国际 从指针地址开始在内存中分配。
    所以 1. 将分配 8字节 , 2 将分配 16字节 等等
    这是真的吗?

    如果是,Swift会分配多少内存 UnsafeMutablePointer<Type> s使用 通用的 类型

    1 回复  |  直到 10 年前
        1
  •  4
  •   Martin R    10 年前

    现在,当我打电话的时候 UnsafeMutablePointer<Int>.alloc(1) ,1是什么 标志我假设它是从内存开始分配的Int数 从指针地址。

    它是为其分配内存的项目数。

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

    几乎一 Int 可以是4或8字节,具体取决于 建筑学

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

    不能为泛型类型分配内存。在 alloc() 类型参数 T 必须是已知的 明确地或从上下文推断出。