目录
在MEX文件的内存操作实现中,存在两类可选方案:其一为运用C语言标准库中的内存处理函数,例如malloc、calloc以及free等;其二是选用Matlab专属的内存操作接口,像mxMalloc、mxCalloc、mxFree这类函数。 若采用C语言标准的内存分配函数,内存释放的责任完全由开发者承担。一旦开发者未主动调用对应的内存释放函数(如free),就有可能引发内存泄漏问题。 而若选择Matlab提供的内存分配函数,开发者既可以在MEX文件内部通过调用mxFree函数,手动释放已分配的内存;即便开发者未进行手动释放,得益于Matlab自带的内存管理机制,那些非输出型的 mxArray变量——也就是与mexFunction函数中plhs参数无关的变量,其占用的内存也会由Matlab内存管理器自动回收。
1.mxCalloc
mxCalloc是Matlab提供的内存分配函数,专门用于在MEX文件(Matlab与C/C++混编文件)中动态分配内存,由Matlab内存管理器托管,是MEX开发中分配与 Matlab 相关内存(如mxArray数据、辅助缓存等)的推荐方式。mxCalloc其调用方法如下:
void * mxCalloc(size_t n, size_t size);
订阅专栏 解锁全文
1334

被折叠的 条评论
为什么被折叠?



