1.\" $NetBSD: reallocarr.3,v 1.4 2015/07/28 17:13:34 kamil Exp $ 2.\" 3.\" Copyright (c) 2015 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in 14.\" the documentation and/or other materials provided with the 15.\" distribution. 16.\" 17.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 20.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 21.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 22.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 23.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 25.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 27.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28.\" SUCH DAMAGE. 29.Dd February 19, 2015 30.Dt REALLOCARR 3 31.Os 32.Sh NAME 33.Nm reallocarr 34.Nd reallocate array 35.Sh SYNOPSIS 36.In stdlib.h 37.Ft int 38.Fo reallocarr 39.Fa "void *ptr" 40.Fa "size_t number" 41.Fa "size_t size" 42.Fc 43.Sh DESCRIPTION 44The 45.Nm 46function reallocates the memory in 47.Fa *ptr . 48.Sh RETURN VALUES 49On successful completion, 50.Fn 51returns 0 and updates 52.Fa *ptr . 53Otherwise, an error code (see 54.Xr errno 2 ) 55is returned and 56.Fa *ptr 57and the referenced memory is unmodified. 58.Sh EXAMPLES 59The following uses 60.Fn reallocarr 61to initialize an array of INITSIZE integers, then 62resizes it to NEWSIZE elements: 63.Bd -literal -offset indent 64int *data = NULL; 65int ret = 0; 66 67ret = reallocarr(&data, INITSIZE, sizeof(*data)); 68if (ret) 69 errc(1, ret, "reallocarr failed"); 70 71ret = reallocarr(&data, NEWSIZE, sizeof(*data)); 72if (ret) 73 errc(1, ret, "reallocarr failed on resize"); 74.Ed 75.Sh SEE ALSO 76.Xr calloc 3 77.Sh HISTORY 78.Nm 79first appeared in 80.Nx 7.0 . 81.Ox 82introduced the 83.Xr reallocarray 3 84function for the same purpose, but the interface makes it difficult 85to correctly handle zero-sized allocations. 86