Resizes and, if required, re-allocates memory that will later be freed internally by the HDF5 library
Procedure:
H5_RESIZE_MEMORY(mem, size)
Signature:
void * H5resize_memory
(
void *mem,
size_t size
)
Parameters:
void *mem | IN: Pointer to a buffer to be resized May be NULL |
size_t size | IN: New size of the buffer, in bytes |
Description:
H5_RESIZE_MEMORY takes a pointer to an existing buffer and resizes the buffer to match the value in size
. If necessary, the buffer is reallocated. If size
is 0
, the buffer is released.
The input buffer must either be NULL
or have been allocated by H5_ALLOCATE_MEMORY since the input buffer may be freed by the library.
For certain behaviors, the pointer mem
may be passed in as NULL
.
This function is intended to have the semantics of realloc()
:
H5resize_memory(buffer, size) | Resizes buffer . Returns pointer to resized buffer. |
H5resize_memory(NULL, size) | Allocates memory using HDF5 Library allocator. Returns pointer to new buffer |
H5resize_memory(buffer, 0) | Frees memory using HDF5 Library allocator. Returns NULL . |
H5resize_memory(NULL, 0) | Returns NULL (undefined in C standard). |
Unlike realloc()
, which allows for a “special” pointer to be returned instead of NULL
, this function always returns NULL
on failure or when size is 0
(zero).
At this time, the only intended use for this function is to resize or reallocate memory that will be returned to the library (and eventually to the user) as a data buffer from a third-party HDF5 filter.
Returns:
On success, returns pointer to resized or reallocated buffer or returns NULL
if size is 0
(zero).
Returns NULL
on failure.
Example:
See Also:
History:
Release | Change |
---|
1.8.15 | C function introduced with this release. |
--- Last Modified: July 28, 2020 | 10:16 AM