对mwArray格式的一点实用感触

本文探讨了在VC中调用MATLAB程序时,mwArray和mxArray*两种数据类型的差异。mwArray作为包装类,内存管理更方便,避免了内存泄露问题,而mxArray作为结构体,提供了更多用户自定义的空间。使用mwArray时,内存会在析构函数中自动释放,简化了编程工作。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值