mwArray与mxArray*是VC调用MATLAB程序中的两种数据类型,简单而言,当MATLAB使用deploytool生成dill文件时选择生成C++格式与C格式时会分别用到mwArray与mxArray*格式。
mwArray与mxArray*最本质的区别在于前者是一种包装类,后者是一种结构体。因此可以联想到mwArray的内存结构已被开发人员设计的很好,而mxArray则有更大的用户设计空间,因此使用mwArray更为方便。
extern LIB_sim_visual_CPP_API void MW_CALL_CONV sim_visual(const mwArray& num);
最直接的区别就在于mxArray用指针进行调用时用户需要考虑内存泄露问题,而mwArray每次调用完毕,一切申请的内存都会在析构函数中自动释放,不需要编程人员考虑。如下代码来自@c4501srsy的专栏
//----------对于mxArray:------------
void fun()
{
……
double d_a=1,d_b=2;
mxArray *a,*b,*c;
mlfEnterNewContext(0,0);
mlfAssign(&a,mlfScalar(d_a));
mlfA