| MATLAB Application Program Interface | Search  Help Desk |
| mxDestroyArray | Examples See Also |
Free dynamic memory allocated by an mxCreate routine
#include "matrix.h" void mxDestroyArray(mxArray *array_ptr);array_ptr
mxArray that you want to free.
mxDestroyArray deallocates the memory occupied by the specified mxArray. mxDestroyArray not only deallocates the memory occupied by the mxArray's characteristics fields (such as m and n), but also deallocates all the mxArray's associated data arrays (such as pr, pi, ir, and/or jc). You should not call mxDestroyArray on an mxArray you are returning on the left hand side.
int rows=2, cols=4;
double pr_data[] = {5.2, 7.9, 1.3, 4.2, 6.7, 5.9, 1.9, 9.4};
double pi_data[] = {3.4, 6.5, 2.2, 9.1, 8.3, 4.7, 2.5, 7.5};
double *pr, *pi;
mxArray *array_ptr;
/* Create a 2-by-4 populated complex matrix. */
array_ptr = mxCreateDoubleMatrix(rows, cols, mxCOMPLEX);
pr = mxGetPr(array_ptr);
pi = mxGetPi(array_ptr);
memcpy((void *)pr,(const void *)pr_data,
rows*cols*sizeof(double));
memcpy((void *)pi,(const void *)pi_data,
rows*cols*sizeof(double));
/* Use the array in some fashion. */
...
/* When finished using the array, deallocate its space. */
mxDestroyArray(array_ptr);
For an additional example, see mxdestroyarray.c in the mx subdirectory of the examples directory.
mxCalloc, mxFree, mexMakeArrayPersistent, mexMakeMemoryPersistent