---
name: "PHYSFS_Allocator"
section: "3"
platform: "linux"
package: "physfs"
version: "3.2.0-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PHYSFS_Allocator"
---

# PHYSFS\_Allocator(3)

PhysicsFS allocation function pointers.

## NAME

PHYSFS\_Allocator - PhysicsFS allocation function pointers.

## SYNOPSIS

\#include \<physfs.h\>

### Data Fields

int(\* **Init** )(void)\
 void(\* **Deinit** )(void)\
 void \*(\* **Malloc** )(**PHYSFS\_uint64**)\
 void \*(\* **Realloc** )(void \*, **PHYSFS\_uint64**)\
 void(\* **Free** )(void \*)\

## Detailed Description

PhysicsFS allocation function pointers.

(This is for limited, hardcore use. If you don't immediately see a need for it, you can probably ignore this forever.)

You create one of these structures for use with PHYSFS\_setAllocator. Allocators are assumed to be reentrant by the caller; please mutex accordingly.

Allocations are always discussed in 64-bits, for future expansion...we're on the cusp of a 64-bit transition, and we'll probably be allocating 6 gigabytes like it's nothing sooner or later, and I don't want to change this again at that point. If you're on a 32-bit platform and have to downcast, it's okay to return NULL if the allocation is greater than 4 gigabytes, since you'd have to do so anyhow.

**See also**

**PHYSFS\_setAllocator**

## Field Documentation

### void(\* PHYSFS\_Allocator::Deinit) (void)

Deinitialize your allocator. Can be NULL.

### void(\* PHYSFS\_Allocator::Free) (void \*)

Free memory from Malloc or Realloc.

### int(\* PHYSFS\_Allocator::Init) (void)

Initialize. Can be NULL. Zero on failure.

### void \*(\* PHYSFS\_Allocator::Malloc) (PHYSFS\_uint64)

Allocate like malloc().

### void \*(\* PHYSFS\_Allocator::Realloc) (void \*, PHYSFS\_uint64)

Reallocate like realloc().

## Author

Generated automatically by Doxygen for physfs from the source code.
