mempcpy, wmempcpy — copy memory area


#define _GNU_SOURCE         /* See feature_test_macros(7) */
#include <string.h>

void *mempcpy(void *dest, const void *src, size_t n);

#define _GNU_SOURCE         /* See feature_test_macros(7) */
#include <wchar.h>

wchar_t *wmempcpy(wchar_t *dest, const wchar_t *src, size_t n);


The mempcpy() function is nearly identical to the memcpy(3) function. It copies n bytes from the object beginning at src into the object pointed to by dest. But instead of returning the value of dest it returns a pointer to the byte following the last written byte.

This function is useful in situations where a number of objects shall be copied to consecutive memory positions.

The wmempcpy() function is identical but takes wchar_t type arguments and copies n wide characters.

Return Value

dest + n.


mempcpy() first appeared in glibc in version 2.1.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
mempcpy(), wmempcpy() Thread safety MT-Safe

Conforming to

This function is a GNU extension.


void *
combine(void *o1, size_t s1, void *o2, size_t s2)
    void *result = malloc(s1 + s2);
    if (result != NULL)
        mempcpy(mempcpy(result, o1, s1), o2, s2);
    return result;

See Also

memccpy(3), memcpy(3), memmove(3), wmemcpy(3)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at

Referenced By

memcpy(3), memstomp(1), wmemcpy(3).

The man page wmempcpy(3) is an alias of mempcpy(3).

2015-03-02 GNU Linux Programmer's Manual