---
name: "valloc"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/valloc"
---

# valloc(3)

aligned memory allocation function

## NAME

**valloc** – aligned memory allocation function

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*void* *\**\

**valloc**(*size\_t size*);

## DESCRIPTION

The **valloc**() function is obsoleted by [posix\_memalign(3)](/posix_memalign/3.md), which can be used to request page-aligned allocations.

The **valloc**() function allocates *size* bytes aligned on a page boundary.

## RETURN VALUES

The **valloc**() function returns a pointer to the allocated space if successful; otherwise a null pointer is returned.

## SEE ALSO

[posix\_memalign(3)](/posix_memalign/3.md)

## HISTORY

The **valloc**() function appeared in 3.0BSD.

The **valloc**() function correctly allocated memory that could be deallocated via **free**() starting in FreeBSD 7.0.
