Xueming
Posts:
4
Registered:
12/4/12
|
|
Re: matlab/mex function doesn't free memory
Posted:
Dec 10, 2012 1:49 AM
|
|
"James Tursa" wrote in message <k9t4q4$ien$1@newscl01ah.mathworks.com>... > "Xueming " <emilyhexueming@hotmail.com> wrote in message <k9sg64$2c9$1@newscl01ah.mathworks.com>... > > > > James,hank you very much for pointing out my misunderstanding of garbage collection mechanism, and my careless about pointer initialization. I found the memory management issues on Mathwork website, and gonna take a look very carefully. > > Btw, I tried to put mexMakeArrayPersistent(mxCell_g); > > following > > mxSetCell(mxCell1,1,mxString); > > mxCell_g=mxCell1; > > but it did work. I was wondering since there is a cell in mxCell1, should I keep it from being destroyed as well? > > What do you mean "... but it did not work"? Can you show your current code and what errors/problems you are currently encountering? As far as mxCell1 being a cell, that makes no difference ... mexMakeArrayPersistent works regardless of the type of variable argument. > > James Tursa
Hi James, my code was no big difference for the previous on, I just add mexMakeArrayPersistent(mxCell_g); and the code is like below: { ... mxCell1=mxCreateCellMatrix(1,2); mxSetCell(mxCell1,0,mxCell); mxSetCell(mxCell1,1,mxString); mxCell_g=mxCell1;
mxCell_g=mxCell1; mexMakeArrayPersistent(mxCell1); return mxCell_g; }
The result turned out as the same as without mexMakeArrayPersistent(mxCell1).
Emily
|
|