UnsafeMutablePointer
のインスタンスが与えられた場合、をdeallocate(capacity:)
の直前に呼び出す点は何ですか?Swift UnsafeMutablePointer:割り当てを解除する前に初期化解除を呼び出す必要がありますか?
deallocate(capacity:)
に電話することはできませんか?
セクションを読んだとき、私はraywenderlich.comに記事Unsafe Swift: Using Pointers And Interacting With Cの「型付きポインタを使用した」これを見ました。
この記事には、以下のコードが含まれています。これを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)") } }