- To return an input a copy must be made with mxDuplicateArray.
- MATLAB will delete the object when there are no longer any references to it in MATLAB.
- A null pointer should convert to an empty double array but test this if you depend on it.
C function returning an mxArray pointer
3 views (last 30 days)
Show older comments
Hello!
I am trying to interface our software to Matlab using the functionality to call external, shared libraries from Matlab using loadlibrary and calllib.
My question is:
If I have a C function returning a mxArray pointer: mxArray* myCFunction(mxArray* args);
Will then Matlab be responsible for deleting the object? What If the function returns a null pointer or the input arguments, is this forbidden, e.g.: mxArray* myCFunction(mxArray* args){ return args; }
or
mxArray* myCFunction(mxArray* args){ return 0; }
Best, Joel
0 Comments
Accepted Answer
Philip Borghesani
on 1 Sep 2011
The rules are the same as for outputs returned via plhs in a mex file.
In short:
More Answers (0)
See Also
Categories
Find more on C Shared Library Integration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!