【发布时间】:2017-06-27 10:18:37
【问题描述】:
我对 mex 文件有点陌生,我正在尝试用 C++ 创建一个函数来加快计算速度。但是我遇到了一些导致 Matlab 崩溃的错误,我不明白为什么。
我尝试调试了很多次,最后发现问题出在主mexFunction之外的函数上,但是我不知道如何解决。我创建了一个示例代码来说明问题:
#include <iostream>
#include <mex.h>
double simplesum (double a, double b){
double sum;
sum = a+b;
return(sum);
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){
double *a, *b,*out;
a = mxGetPr(prhs[0]);
b = mxGetPr(prhs[1]);
out = mxGetPr(plhs[0]);
double sum;
sum=simplesum(*a,*b);
*out = sum;
}
如果我不调用函数simplesum 一切正常,但我想使用它(在我更复杂的代码中)。
是内存分配有问题还是别的什么问题?
【问题讨论】: