The mi_zalloc() function
The mi_zalloc() function allocates and zero-fills a block of memory of the given size and returns a pointer to a block of user memory of the specified size.
Syntax
void *mi_zalloc (size)
mi_integer size;
- size
- The number of bytes to allocate and fill with zeroes.
Valid in client LIBMI application? | Valid in user-defined routine? |
---|---|
Yes | Yes |
Usage
The mi_zalloc() function allocates size number of bytes of user memory for a DataBlade® API module. The mi_zalloc() function behaves exactly like the mi_alloc() function except that mi_zalloc() fills the allocated block of memory with zeroes before the function returns the pointer to the memory. The mi_zalloc() function is a constructor function for user memory.
Use DataBlade API memory-management functions, such as mi_zalloc(), to allocate memory in C UDRs. Use of a DataBlade API memory-management function guarantees that the database server automatically frees the memory, especially in the cases of return values or exceptions, where the UDR would not otherwise be able to free the memory.
Client LIBMI applications can use either DataBlade API memory-management functions or system memory-management functions (such as malloc()).
The mi_zalloc() function returns a pointer to the newly allocated memory. Cast this pointer to match the structure of the user-defined buffer or structure that you allocate. A DataBlade API module can use the mi_free() function to free memory allocated by mi_zalloc() when that memory is no longer needed.
For more information about memory allocation and memory durations, see the HCL OneDB™ DataBlade API Programmer's Guide.
Return values
- A void pointer
- A pointer to the newly allocated memory. Cast this pointer to match the user-defined buffer or structure for which the memory was allocated.
- NULL
- The function was unable to allocate the memory.
The mi_zalloc() function does not throw an MI_Exception event when it encounters a runtime error. Therefore, it does not cause callbacks to started.