void *mxCalloc(n,size)
unsigned int n; unsigned int size; void mxFree(ptr) void *ptr;
integer*4 function mxCalloc(n,size)
subroutine mxFree(ptr) integer*4 ptr, n, size
n
ptr
size
mxCalloc
and mxFree
, rather than calloc
, malloc
, and free
, to allocate memory. mxCalloc
and mxFree
in the libmex
library allocate and free memory using MATLAB's own memory management facility. This ensures correct memory management in error and abort (Ctrl-C) conditions.
mxCalloc
allocates memory on the MATLAB heap and sets it all to zeros. This function is useful for creating temporary work arrays. On return from your MEX-file, MATLAB automatically frees any memory that you allocated with mxCalloc
. If you do not want it freed automatically, use calloc
or malloc
instead.
mxFree
returns to the heap any memory allocated using mxCalloc
. If you do not free memory with this command, MATLAB frees it automatically on return from the MEX-file.
calloc
and malloc
also allocate memory on the system's heap. They differ from mxCalloc
in that they use the system calloc
and malloc
linked into MATLAB, rather than using MATLAB's own memory managed allocation routines. Use calloc
and malloc
to allocate memory that you want to persist between calls to the MEX-file.
malloc
, calloc
, and free
use call-backs to the run-time library routines by the same names that are linked into the MATLAB image. The cmex
command does not link in new versions from the run-time library.
malloc
allocates uninitialized memory, whereas calloc
initializes it to all zeros.
Use free
to return memory that was allocated using malloc
and calloc
.
If you write a MEX-file with persistent memory (uses calloc
or malloc
to allocate memory and doesn't free it between calls to the MEX-file), be sure to register a mexAtExit
function to free allocated memory in the event your MEX-file is cleared.
While mxCalloc
and mxFree
in the libmex
library allocate and free memory using MATLAB's own memory management facility, mxCalloc
and mxFree
in the libmat
library simply call calloc
and free
.
(c) Copyright 1994 by The MathWorks, Inc.