REALLOCARRAY
Section: Misc. Reference Manual Pages (3bsd)Index Return to Main Contents
BSD mandoc
NAME
reallocarray - memory allocation and deallocationLIBRARY
Lb libbsdSYNOPSIS
In stdlib.h (See libbsd(7) for include usage.) Ft void * Fn reallocarray void *ptr size_t nmemb size_t sizeDESCRIPTION
When using Fn malloc be careful to avoid the following idiom:
if ((p = malloc(num * size)) == NULL) err(1, "malloc");
The multiplication may lead to an integer overflow, which can be avoided using the extension Fn reallocarray , as follows:
if ((p = reallocarray(NULL, num, size)) == NULL) err(1, "malloc");
Alternatively Fn calloc is a more portable solution which comes with the cost of clearing memory.
If Fn malloc must be used, be sure to test for overflow:
if (size && num > SIZE_MAX / size) { errno = ENOMEM; err(1, "overflow"); }
The use of Fn reallocarray or Fn calloc is strongly encouraged when allocating multiple sized objects in order to avoid possible integer overflows.
RETURN VALUES
The Fn reallocarray function returns a pointer to the allocated space if successful; otherwise, a null pointer is returned and errno is set to Er ENOMEM .SEE ALSO
malloc(3), calloc(3), alloca(3)HISTORY
Fn reallocarray appeared in Ox 5.6 , glibc 2.26.
Index
This document was created by man2html, using the manual pages.
Time: 04:45:36 GMT, September 16, 2022
0 댓글