dealloc(num :)究竟对UnsafeMutablePointer做了什么?

时间:2015-02-26 20:16:32

标签: swift pointers allocation dealloc

我正在使用Swifts UnsafeMutablePointer类型进行搜索,并遇到了dealloc(num:)方法。
现在我对Swift中指针如何工作的知识都是基于假设,这些假设似乎一直持续到现在为止:

  • UnsafeMutablePointer<Type>.alloc(num:)方法为操作系统提供一块内存,该内存大到足以保存给定num的{​​{1}}个值
  • Type方法将initialize(newValue:)放在指针指向的内存地址
  • newValue属性允许我读取和写入存储在指针地址的值

现在here memory方法的说明如下:

  

取消分配dealloc(num:)个对象。

     

num 要解除分配的对象数。应该与传递给num的值完全匹配(不能进行部分解除分配)。

所以我假设alloc()做的是告诉操作系统它可以有内存块,它从指针指向的地址开始并在以下位置结束:(地址+ sizeof(Type)⋅num)

那么为什么部分解除分配不可能呢? 问题是,某些内存可能永远保持分配(只要应用程序运行)?

0 个答案:

没有答案