---
title: UnsafeBufferPointer
framework: swift
role: symbol
role_heading: Structure
path: swift/unsafebufferpointer
---

# UnsafeBufferPointer

A nonowning collection interface to a buffer of elements stored contiguously in memory.

## Declaration

```swift
@frozen struct UnsafeBufferPointer<Element> where Element : ~Copyable
```

## Overview

Overview You can use an UnsafeBufferPointer instance in low level operations to eliminate uniqueness checks and, in release mode, bounds checks. Bounds checks are always performed in debug mode. UnsafeBufferPointer Semantics An UnsafeBufferPointer instance is a view into memory and does not own the memory that it references. Copying a value of type UnsafeBufferPointer does not copy the instances stored in the underlying memory. However, initializing another collection with an UnsafeBufferPointer instance copies the instances out of the referenced memory and into the new collection.

## Topics

### Initializers

- [init(_:)](swift/unsafebufferpointer/init(_:)-2fjdq.md)
- [init(_:)](swift/unsafebufferpointer/init(_:)-36fvm.md)
- [init(_:)](swift/unsafebufferpointer/init(_:)-5ei4s.md)
- [init(rebasing:)](swift/unsafebufferpointer/init(rebasing:)-53eec.md)
- [init(rebasing:)](swift/unsafebufferpointer/init(rebasing:)-56rdb.md)
- [init(start:count:)](swift/unsafebufferpointer/init(start:count:).md)

### Instance Properties

- [baseAddress](swift/unsafebufferpointer/baseaddress.md)
- [count](swift/unsafebufferpointer/count.md)
- [span](swift/unsafebufferpointer/span.md)

### Instance Methods

- [deallocate()](swift/unsafebufferpointer/deallocate().md)
- [extracting(_:)](swift/unsafebufferpointer/extracting(_:)-47z4z.md)
- [extracting(_:)](swift/unsafebufferpointer/extracting(_:)-4bn8q.md)
- [extracting(_:)](swift/unsafebufferpointer/extracting(_:)-nivx.md)
- [isTriviallyIdentical(to:)](swift/unsafebufferpointer/istriviallyidentical(to:).md)
- [withBytes(_:)](swift/unsafebufferpointer/withbytes(_:).md)
- [withMemoryRebound(to:_:)](swift/unsafebufferpointer/withmemoryrebound(to:_:).md)

### Subscripts

- [subscript(_:)](swift/unsafebufferpointer/subscript(_:)-3sy16.md)

### Default Implementations

- [AtomicRepresentable Implementations](swift/unsafebufferpointer/atomicrepresentable-implementations.md)
- [BidirectionalCollection Implementations](swift/unsafebufferpointer/bidirectionalcollection-implementations.md)
- [Collection Implementations](swift/unsafebufferpointer/collection-implementations.md)
- [CustomDebugStringConvertible Implementations](swift/unsafebufferpointer/customdebugstringconvertible-implementations.md)
- [OperationParameter Implementations](swift/unsafebufferpointer/operationparameter-implementations.md)
- [Sequence Implementations](swift/unsafebufferpointer/sequence-implementations.md)

## Relationships

### Conforms To

- [AccelerateBuffer](accelerate/acceleratebuffer.md)
- [AtomicRepresentable](synchronization/atomicrepresentable.md)
- [BNNSGraph.Builder.OperationParameter](accelerate/bnnsgraph/builder/operationparameter.md)
- [BidirectionalCollection](swift/bidirectionalcollection.md)
- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Collection](swift/collection.md)
- [ContiguousBytes](foundation/contiguousbytes.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [DataProtocol](foundation/dataprotocol.md)
- [Escapable](swift/escapable.md)
- [RandomAccessCollection](swift/randomaccesscollection.md)
- [Sequence](swift/sequence.md)

## See Also

### Typed Pointers

- [UnsafePointer](swift/unsafepointer.md)
- [UnsafeMutablePointer](swift/unsafemutablepointer.md)
- [UnsafeMutableBufferPointer](swift/unsafemutablebufferpointer.md)
