5

のインスタンスが与えられた場合、直前UnsafeMutablePointerに呼び出す意味は何ですか?deinitialize(count:)deallocate(capacity:)

電話してくれませんdeallocate(capacity:)か?


これは、 raywenderlich.com のUnsafe Swift: Using Pointers And Interacting With Cという記事の「Using Typed Pointers」セクションを読んでいるときに見ました。

この記事には、Xcode の新しいプレイグラウンドに追加できる以下のコードが含まれています。

let count = 2
let stride = MemoryLayout<Int>.stride
let alignment = MemoryLayout<Int>.alignment
let byteCount = stride * count

do {
  print("Typed pointers")

  let pointer = UnsafeMutablePointer<Int>.allocate(capacity: count)
  pointer.initialize(to: 0, count: count)
  defer {
    pointer.deinitialize(count: count)
    pointer.deallocate(capacity: count)
  }

  pointer.pointee = 42
  pointer.advanced(by: 1).pointee = 6
  pointer.pointee
  pointer.advanced(by: 1).pointee

  let bufferPointer = UnsafeBufferPointer(start: pointer, count: count)
  for (index, value) in bufferPointer.enumerated() {
    print("value \(index): \(value)")
  }
}
4

1 に答える 1