---
title: "append(length:allocator:deallocator:range:flags:)"
framework: coremedia
role: symbol
role_heading: Instance Method
path: "coremedia/cmblockbuffer/append(length:allocator:deallocator:range:flags:)"
---

# append(length:allocator:deallocator:range:flags:)

Adds a memory block to a block buffer using a custom allocator and deallocator.

## Declaration

```swift
func append(length: Int, allocator: @escaping CMBlockBuffer.CustomBlockAllocator, deallocator: @escaping CMBlockBuffer.CustomBlockDeallocator, range: Range<Int>? = nil, flags: CMBlockBuffer.Flags = []) throws
```

## Parameters

- `length`: The length of the memory block in bytes. Must not be zero. This is the size to allocate when you call the doc://com.apple.coremedia/documentation/CoreMedia/CMBlockBuffer/assureBlockMemory() function.
- `allocator`: An object that allocates a memory block.
- `deallocator`: An object that deallocates a memory block.
- `range`: The range within the memory block to which the block buffer should refer to data. If this value is nil, the block buffer uses the whole memory block.
- `flags`: Feature and control flags.

## See Also

### Modifying a Block Buffer

- [append(length:allocator:range:flags:)](coremedia/cmblockbuffer/append(length:allocator:range:flags:).md)
- [append(buffer:allocator:flags:)](coremedia/cmblockbuffer/append(buffer:allocator:flags:)-28keu.md)
- [append(buffer:allocator:flags:)](coremedia/cmblockbuffer/append(buffer:allocator:flags:)-8fws8.md)
- [append(buffer:deallocator:flags:)](coremedia/cmblockbuffer/append(buffer:deallocator:flags:)-3bfef.md)
- [append(buffer:deallocator:flags:)](coremedia/cmblockbuffer/append(buffer:deallocator:flags:)-1ibzz.md)
- [CMBlockBuffer.CustomBlockAllocator](coremedia/cmblockbuffer/customblockallocator.md)
- [CMBlockBuffer.CustomBlockDeallocator](coremedia/cmblockbuffer/customblockdeallocator.md)
- [append(bufferReference:flags:)](coremedia/cmblockbuffer/append(bufferreference:flags:).md)
- [assureBlockMemory()](coremedia/cmblockbuffer/assureblockmemory().md)
- [withUnsafeMutableBytes(atOffset:_:)](coremedia/cmblockbuffer/withunsafemutablebytes(atoffset:_:).md)
