文書   >   Swift   >   Swift 標準ライブラリ  >     手動でメモリ管理   >   MemoryLayout


MemoryLayout


型のメモリレイアウト。そのサイズ、ストライド、及びアライメントを記述します。






宣言


@frozen enum MemoryLayout<T>


概要


生のポインタを使用してメモリを割り当てたり結合したりするときに、MemoryLayout を型に関する情報のソースとして使用できます。以下の例では、x 座標と y 座標、およびブール型の isFilled プロパティを持つ Point 型を宣言しています。


struct Point {
    let x: Double
    let y: Double
    let isFilled: Bool
}


Point 型のサイズ、ストライド、およびアライメントは、MemoryLayout<Point> の静的プロパティとしてアクセスできます。


// MemoryLayout<Point>.size == 17
// MemoryLayout<Point>.stride == 24
// MemoryLayout<Point>.alignment == 8


メモリを割り当てるとき、またはメモリ内のインスタンス間の距離を考慮するときは、常にその size の代わりに型のストライドの倍数を使用して下さい。この例では、Point の 4 つのインスタンス用に、初期化されていない生のメモリのスペースを割り当てます。


let count = 4
let pointPointer = UnsafeMutableRawPointer.allocate(
        bytes: count * MemoryLayout<Point>.stride,
        alignedTo: MemoryLayout<Point>.alignment)


トピックス





型のレイアウトにアクセスする





値のレイアウトにアクセスする





型プロパティを照会する

















トップへ












トップへ












トップへ












トップへ












トップへ
目次
Xcode 11 の新機能

  • SDK
  • Xcode 8.0+
  • フレームワーク
  • Swift 標準ライブラリ
  • 宣言
  • 概要
  • トピックス












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ