---
name: "memory"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["freebsd", "macos"]
url: "https://new.carta.tech/memory"
---

# memory(3)

general memory allocation operations

## NAME

**alloca**, **calloc**, **free**, **malloc**, **mmap**, **realloc** – general memory allocation operations

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<stdlib.h\>**

*void* *\**\

**alloca**(*size\_t size*);

*void* *\**\

**calloc**(*size\_t nelem*, *size\_t elsize*);

*void*\

**free**(*void \*ptr*);

*void* *\**\

**malloc**(*size\_t size*);

*void* *\**\

**realloc**(*void \*ptr*, *size\_t size*);

**#include \<sys/mman.h\>**

*void* *\**\

**mmap**(*void \* addr*, *size\_t len*, *int prot*, *int flags*, *int fildes*, *off\_t off*);

## DESCRIPTION

These functions allocate and free memory for the calling process. They are described in the individual manual pages.

## LEGACY SYNOPSIS

**#include \<sys/types.h\>** **#include \<sys/mman.h\>**

*void* *\**\
 **mmap**(*void \* addr*, *size\_t len*, *int prot*, *int flags*, *int fildes*, *off\_t off*);

The include file ⟨sys/types.h⟩ is needed for this function.

## COMPATIBILITY

**mmap**() now returns with *errno* set to EINVAL in places that historically succeeded. The rules have changed as follows:

- The *flags* parameter must specify either MAP\_PRIVATE or MAP\_SHARED.

- The *size* parameter must not be 0.

- The *off* parameter must be a multiple of pagesize, as returned by **sysconf**().

## SEE ALSO

[mmap(2)](/mmap/2.md), [alloca(3)](/alloca/3.md), [calloc(3)](/calloc/3.md), [free(3)](/free/3.md), [malloc(3)](/malloc/3.md), [realloc(3)](/realloc/3.md), [compat(5)](/compat/5.md)

## STANDARDS

These functions, with the exception of **alloca**() and **mmap**() conform to ISO/IEC 9899:1990 (“ISO C90”).
