x SuSE Linux 13.1-RELEASE x x SuSE Linux 13.1-RELEASEx REALLOCARRAY(3bsd) LOCAL REALLOCARRAY(3bsd) NAME reallocarray -- memory allocation and deallocation LIBRARY library ``libbsd'' SYNOPSIS #include <stdlib.h> (See libbsd(7) for include usage.) void * reallocarray(void *ptr, size_t nmemb, size_t size); DESCRIPTION When using 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 reallocarray(), as follows: if ((p = reallocarray(NULL, num, size)) == NULL) err(1, "malloc"); Alternatively calloc() is a more portable solution which comes with the cost of clearing memory. If malloc() must be used, be sure to test for overflow: if (size && num > SIZE_MAX / size) { errno = ENOMEM; err(1, "overflow"); } The use of reallocarray() or calloc() is strongly encouraged when allo- cating multiple sized objects in order to avoid possible integer over- flows. RETURN VALUES The reallocarray() function returns a pointer to the allocated space if successful; otherwise, a null pointer is returned and errno is set to ENOMEM. SEE ALSO malloc(3), calloc(3), alloca(3) HISTORY reallocarray() appeared in OpenBSD 5.6, glibc 2.26. BSD November 14, 2024 BSD
Want to link to this manual page? Use this URL:
<http://star2.abcm.com/cgi-bin/bsdi-man?query=reallocarray&sektion=3bsd&manpath=>