FreeBSD Manual Pages
std::free(3) C++ Standard Libary std::free(3) NAME std::free - std::free Synopsis Defined in header <cstdlib> void free( void* ptr ); Deallocates the space previously allocated by std::malloc, std::cal- loc , std::aligned_alloc (since C++17), or std::realloc. If ptr is a null pointer, the function does nothing. The behavior is undefined if the value of ptr does not equal a value returned earlier by std::malloc, std::calloc , std::aligned_alloc (since C++17), or std::realloc. The behavior is undefined if the memory area referred to by ptr has already been deallocated, that is, std::free or std::realloc has already been called with ptr as the argument and no calls to std::malloc, std::calloc , std::aligned_alloc (since C++17), or std::realloc resulted in a pointer equal to ptr afterwards. The behavior is undefined if after std::free returns, an access is made through the pointer ptr (unless another allocation function happened to result in a pointer value equal to ptr) The following functions are required to be thread-safe: * The library versions of operator new and operator delete * User replacement versions of global operator new and operator delete * std::calloc, std::malloc, std::realloc, (since C++11) std::aligned_alloc (since C++17), std::free Calls to these functions that allocate or deallocate a particular unit of storage occur in a single total order, and each such deallocation call happens-before the next allocation (if any) in this order. Parameters ptr - pointer to the memory to deallocate Return value (none) Notes The function accepts (and does nothing with) the null pointer to re- duce the amount of special-casing. Whether allocation succeeds or not, the pointer returned by an allocation function can be passed to std::free. Example // Run this code #include <cstdlib> int main() { int* p1 = (int*)std::malloc(10*sizeof *p1); std::free(p1); // every allocated pointer must be freed int* p2 = (int*)std::calloc(10, sizeof *p2); int* p3 = (int*)std::realloc(p2, 1000*sizeof *p3); if(!p3) // p3 null means realloc failed and p2 must be freed. std::free(p2); std::free(p3); // p3 can be freed whether or not it is null. } See also http://cppreference.com 2022.07.31 std::free(3)
NAME | Synopsis | Parameters | Return value | Notes | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::free&sektion=3&manpath=FreeBSD+Ports+15.0>
