---
title: "CFAllocatorCreate(_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfallocatorcreate(_:_:)"
---

# CFAllocatorCreate(_:_:)

Creates an allocator object.

## Declaration

```swift
func CFAllocatorCreate(_ allocator: CFAllocator!, _ context: UnsafeMutablePointer<CFAllocatorContext>!) -> Unmanaged<CFAllocator>!
```

## Parameters

- `allocator`: The existing allocator to use to allocate memory for the new allocator. Pass the doc://com.apple.corefoundation/documentation/CoreFoundation/kCFAllocatorUseContext constant for this parameter to allocate memory using the appropriate function callback specified in the context parameter. Pass NULL or doc://com.apple.corefoundation/documentation/CoreFoundation/kCFAllocatorDefault to allocate memory for the new allocator using the default allocator.
- `context`: A structure of type doc://com.apple.corefoundation/documentation/CoreFoundation/CFAllocatorContext. The fields of this structure hold (among other things) function pointers to callbacks used for allocating, reallocating, and deallocating memory.

## Return Value

Return Value The new allocator object, or NULL if there was a problem allocating memory. Ownership follows the The Create Rule.

## Discussion

Discussion You use this function to create custom allocators which you can then pass into various Core Foundation object-creation functions. You must implement a function callback that allocates memory and assign it to the allocate field of this structure. You typically also implement deallocate, reallocate, and preferred-size callbacks.
