- 积分
- 0
- 注册时间
- 2010-1-21
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-1-22 11:00:51
|
显示全部楼层
来自 北京海淀
如题。
MATLAB 2006b
VC++ 6.0
例如:
在循环之前 接口函数内 定义
EigB = mxCreateDoubleMatrix(6,1,mxCOMPLEX);
EigBNR = mxGetPr(EigB);
EigBNI = mxGetPi(EigB);
如下
mexCallMATLAB(1,&EigB,1,&detMatrix,"eig");
循环多次之后
*(EigBNR +i),*(EigBNI+i ),数都是0,没有发生任何的变化;即:mexCallMATLAB之后,&EigB的地址发生了变化。。。
怎么解决?
我尝试如下解决:
把EigB,及指向指针(或者仅指向指针)放到循环体里面
EigB = mxCreateDoubleMatrix(6,1,mxCOMPLEX);
EigBNR = mxGetPr(EigB);
EigBNI = mxGetPi(EigB);
结果得出是对的(即*EigBNR和*EigBNI可以取值),但是循环多次之后,出错,应该是内存溢出的错误吧?调试过程就出错,只能循环几次 |
|