马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我在Win32控制台下编写了下面一个短小的程序:
#include "libDotMul.h"
#include "mclmcr.h"
#include "mclcppclass.h"
#include <iostream.h>
void main()
{
double B[4] = {1.0, 2.0, 3.0, 4.0};
double C[4] = {4.0, 5.0, 6.0, 7.0};
double A[4] = {0.0};
mwArray Temp_A(2, 2, mxDOUBLE_CLASS);//出错
mwArray Temp_B(2, 2, mxDOUBLE_CLASS);
mwArray Temp_C(2, 2, mxDOUBLE_CLASS);
Temp_B.SetData(B, 4);
Temp_C.SetData(C, 4);
DotMul(1, Temp_A, Temp_B, Temp_C);//Matlab通过DLL转化过来的简单函数
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
A[i+j] = Temp_A(i+1,j+1);
}
}
for (i = 0; i < 4; i++)
{
std::cout<<A<<std::endl;
}
}
编译通过,但是单步调试的时候发现,一运行到mwArray Temp_A(2, 2, mxDOUBLE_CLASS);就出错;
这里只是一个简单的定义,为什么出错?错误如下:
Unhandled exception in 11.exe: 0xC0000005: Access Violation
请问:这是怎么回事?如果改正呢? |