REALLOCARR(3)

NAME
reallocarr - reallocate array

SYNOPSIS
#include <stdlib.h>
int
reallocarr(void *ptr, size_t number, size_t size);

DESCRIPTION
The reallocarr function reallocates the memory in *ptr.

RETURN VALUES
On successful completion, returns 0 and updates *ptr. Otherwise, an error code (see errno(2)) is returned and *ptr and the referenced memory is unmodified.

EXAMPLES
The following uses reallocarr() to initialize an array of INITSIZE integers, then resizes it to NEWSIZE elements:

    int *data = NULL;
    int ret = 0;
    ret = reallocarr(&data, INITSIZE, sizeof(*data));
    if (ret)
        errc(1, ret, "reallocarr failed");
    ret = reallocarr(&data, NEWSIZE, sizeof(*data));
    if (ret)
        errc(1, ret, "reallocarr failed on resize");

SEE ALSO
calloc(3)

HISTORY
reallocarr first appeared in NetBSD 7.0. OpenBSD introduced the reallocarray(3) function for the same purpose, but the interface makes it difficult to correctly handle zero-sized allocations.