MFC程序写入位置时发生访问冲突

整个程序教复杂就不贴了,贴出出问题的代码段,如下一个子函数,在主程序中循环给子函数,编译不会出错,而且可以一般可以运行好久,然后偶尔会出现“写入地址访问冲突”然后程序中断,中断后箭头指向该子函数最后一句“return num_spe”。有高手知道这是为什么吗,找了好久找不到原因,主要出错的情况是偶然下才发生的。
int Wave_Test(VectorXd test)
{
int num_spe = 0;
VectorXd out(m);
int N = label.size() / m;
int N_t = feature_T.size() / n;
MatrixXd Tem_t(N, n);
VectorXd K_t = VectorXd::Ones(N);
for (int i = 0; i < N; i++)
{
for (int j = 0; j < n; j++)
{
Tem_t(i, j) = test(j) - feature(i, j);
}
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < n; j++)
{
K_t(i) = K_t(i) * cos(1.75*(test(j) - feature(i, j)) / c)*exp(((-pow(test(j) - feature(i, j), 2)) / (2 * pow(c, 2))));
}
}
out.transpose() = K_t.transpose()*beta;
double m_dtemp=0;
for (int j = 0; j < m; j++)
{
if(pow(out(j),2)>m_dtemp)
{
m_dtemp=pow(out(j),2);
num_spe = j + 1;
}
}
return num_spe;
}

test label和feature_T.三个变量是外部变量,在你运算过程中这三个变量是否可能发生变化?应该是这三个变量发生变化引起的

看下哪一行代码报错,检查其中的指针是不是null,或者没有分配

for循环中多次多i,j进行声明以及初始化,可以改成其他变量名看看

老哥们,注意问题啊,不是总是会异常,只有偶尔,这才是关键。如果真是那么简单的话也不会拿出来问了