---
name: "mempcpy"
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/memcpy"
---

# mempcpy(3)

copy bytes in memory

Part of [memcpy(3)](/memcpy/3.md).

## NAME

**memcpy** – copy bytes in memory

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*void* *\**\

**memcpy**(*void \*dst*, *const void \*src*, *size\_t len*);

*void* *\**\

**mempcpy**(*void \*dst*, *const void \*src*, *size\_t len*);

## DESCRIPTION

The **memcpy**() and **mempcpy**() functions copy *len* bytes from object *src* to object *dst*. If *src* and *dst* overlap, the results are not defined.

## RETURN VALUES

The **memcpy**() function returns the original value of *dst*.

The **mempcpy**() function returns a pointer to the byte after the last written byte.

## SEE ALSO

[bcopy(3)](/bcopy/3.md), [memccpy(3)](/memccpy/3.md), [memmove(3)](/memmove/3.md), [strcpy(3)](/strcpy/3.md), [wmemcpy(3)](/wmemcpy/3.md), [wmempcpy(3)](/wmempcpy/3.md)

## STANDARDS

The **memcpy**() function conforms to ISO/IEC 9899:1990 (“ISO C90”).

## HISTORY

The **memcpy**() function first appeared in AT&T System V UNIX and was reimplemented for 4.3BSD-Tahoe. The **mempcpy**() function first appeared in FreeBSD 13.1.
