External Interfaces Reference |
Allocate dynamic memory using MATLAB memory manager
C Syntax
Arguments
n
Number of bytes to allocate.
Returns
A pointer to the start of the allocated dynamic memory, if successful. If unsuccessful in a stand-alone (nonMEX-file) application, mxMalloc
returns NULL
. If unsuccessful in a MEX-file, the MEX-file terminates and control returns to the MATLAB prompt.
mxMalloc
is unsuccessful when there is insufficient free heap space.
Description
MATLAB applications should always call mxMalloc
rather than malloc
to allocate memory. Note that mxMalloc
works differently in MEX-files than in stand-alone MATLAB applications.
In MEX-files, mxMalloc
automatically
n
bytes.
The MATLAB memory management facility maintains a list of all memory allocated by mxMalloc
. The MATLAB memory management facility automatically frees (deallocates) all of a MEX-file's parcels when control returns to the MATLAB prompt.
In stand-alone MATLAB applications, mxMalloc
calls the ANSI C malloc
function.
By default, in a MEX-file, mxMalloc
generates nonpersistent mxMalloc
data. In other words, the memory management facility automatically deallocates the memory as soon as the MEX-file ends. If you want the memory to persist after the MEX-file completes, call mexMakeMemoryPersistent
after calling mxMalloc
. If you write a MEX-file with persistent memory, be sure to register a mexAtExit
function to free allocated memory in the event your MEX-file is cleared.
When you finish using the memory allocated by mxMalloc
, call mxFree
. mxFree
deallocates the memory.
Examples
See mxmalloc.c
in the mx
subdirectory of the examples
directory. For an additional example, see mxsetdimensions.c
in the mx
subdirectory of the examples
directory.
See Also
mxCalloc
, mxFree
, mxDestroyArray
, mexMakeArrayPersistent
,mexMakeMemoryPersistent
mxIsUint64 | mxRealloc |
© 1994-2005 The MathWorks, Inc.