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

整个程序教复杂就不贴了,贴出出问题的代码段,如下一个子函数,在主程序中循环给子函数,编译不会出错,而且可以一般可以运行好久,然后偶尔会出现“写入地址访问冲突”然后程序中断,中断后箭头指向该子函数最后一句“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;
}

4个回答

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

baidu_30233079
baidu_30233079 没看懂你这些是什么意思Tem_t(i, j) = test(j) - feature(i, j); Tem_t是函数还是数组啊?数组应该这样写Tem_t[i,j]
一年多之前 回复
qq_38232171
WonderfulU_ label和feature_T是全局变量,不变的。test是形参,每次循环时候test是不一样的,是采集到的数据
一年多之前 回复

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

qq_38232171
WonderfulU_ 最后一行,返回时出错,没有用到指针
一年多之前 回复

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问