mxCalloc (C and Fortran)
Allocate dynamic memory for array, initialized to 0, using MATLAB memory manager
C Syntax
#include "matrix.h" #include <stdlib.h> void *mxCalloc(mwSize n, mwSize size);
Fortran Syntax
#include "fintrf.h" mwPointer mxCalloc(n, size) mwSize n, size
Arguments
- n
- Number of elements to allocate. This must be a nonnegative number. 
- size
- Number of bytes per element. (The C - sizeofoperator calculates the number of bytes per element.)
Returns
Pointer to the start of the allocated dynamic memory, if successful. If unsuccessful
            in a MAT or engine standalone application, mxCalloc returns
                NULL in C (0 in Fortran). If unsuccessful in a
            MEX file, the MEX file terminates and control returns to the MATLAB® prompt.
mxCalloc is unsuccessful when there is insufficient free heap
            space.
Description
mxCalloc allocates contiguous heap space sufficient to hold
                n elements of size bytes each, and initializes
            this newly allocated memory to 0. To allocate memory in MATLAB applications, use mxCalloc instead of the ANSI® C
            calloc function.
In MEX files, but not MAT or engine applications, mxCalloc
            registers the allocated memory with the MATLAB memory manager. When control returns to the MATLAB prompt, the memory manager then automatically frees, or
                deallocates, this memory.
How you manage the memory created by this function depends on the purpose of the data assigned
        to it. If you assign it to an output argument in plhs[] using a function
        such as mxSetDoubles, then MATLAB is responsible for freeing the memory.
If you use the data internally, then the MATLAB memory manager maintains a list of all memory allocated by the function and
        automatically frees (deallocates) the memory when control returns to the MATLAB prompt. In general, we recommend that MEX file functions destroy their own
        temporary arrays and free their own dynamically allocated memory. It is more efficient to
        perform this cleanup in the source MEX file than to rely on the automatic mechanism.
        Therefore, when you finish using the memory allocated by this function, call
            mxFree to deallocate the memory.
If you do not assign this data to an output argument, and you want it to persist after the MEX
        file completes, then call mexMakeMemoryPersistent after calling this
        function. If you write a MEX file with persistent memory, then be sure to register a
            mexAtExit function to free allocated memory in the event your MEX
        file is cleared.
Examples
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","mex","filename")]);
where filename is:
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","refbook","filename")]);
where filename is:
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","mx","filename")]);
where filename is:
See Also
mexAtExit,
                mexMakeArrayPersistent, mexMakeMemoryPersistent, mxDestroyArray,
                mxFree,
                mxMalloc,
                mxRealloc
Version History
Introduced before R2006a