我已经使用 coder 将一些 matlab 代码转换为 C++。
void myfunction(const emxArray_real_T *input, emxArray_real_T *output){ ... }
我已经设置发送emxArray_real_T
类型输入没有任何问题。如何设置在调用的 C++ 中接收动态大小的输出myfunction
?
代码更新:
main(){
.
.
.
double *inputVec;
inputVec=(double*)malloc(1000 * sizeof(double));
emxArray_real_T *input;
emxArray_real_T *output;
input=emxCreateWrapper_real_T(&inputVec[0],1,1000);
output = emxCreateWrapper_real_T(NULL,0,0);
myfunction(input,output);
emxDestroyArray_real_T(input);
emxDestroyArray_real_T(output);
.
.
}
这编译得很好,但错误说
*** glibc detected *** /data/myscript : double free or corruption (!prev): 0x000000000de54920 ***