C++ 错误MSB3073:命令“"&引用;.\..\\lib\Tests.exe";:VCEnd“;已退出,代码为-1073740940
当我构建代码时,我得到了上面的消息 谁能帮我解释一下这个问题吗 非常感谢 致意 金丹 更新问题:以下代码段出现上述错误C++ 错误MSB3073:命令“"&引用;.\..\\lib\Tests.exe";:VCEnd“;已退出,代码为-1073740940,c++,C++,当我构建代码时,我得到了上面的消息 谁能帮我解释一下这个问题吗 非常感谢 致意 金丹 更新问题:以下代码段出现上述错误 vector <double> vBandSubset (vBand.size(), 0.0); vBandSubset = vBand; double dMeanBand=GetMean(vBand); int j = 0; for (int i = nBin1 - 3; i <= nBin1 + 3; i++) { vBandSubse
vector <double> vBandSubset (vBand.size(), 0.0);
vBandSubset = vBand;
double dMeanBand=GetMean(vBand);
int j = 0;
for (int i = nBin1 - 3; i <= nBin1 + 3; i++)
{
vBandSubset[i] = dMeanBand*(1 + 0.00001*j);
j++;
}
向量vBandSubset(vBand.size(),0.0);
vBandSubset=vBand;
双dMeanBand=GetMean(vBand);
int j=0;
对于(int i=nBin1-3;i来说,如果不知道您具体在做什么,很难确定地说什么,但是-1073740940==0xC0000374==STATUS\u HEAP\u CORRUPTION。这有什么启示吗
[UPD]假设将错误值解释为NTSTATUS是正确的,则会损坏堆。进一步假设它发生在所显示的代码中,则最有可能是nBin1<3
或nBin1+3>=vBandSubset.size()
。在任何一种情况下,循环中的分配都将覆盖vBandSubset
数据块之前或之后的技术堆区域
由于这是一个测试,我建议您使用vBandSubset.at(I)
而不是vBandSubset[I]
。与operator[]
不同,at()
验证其参数,并在其无效时抛出异常。异常比内存损坏更容易调试
另外,您可以编辑您的问题并将代码放在那里。这样对读者更方便。尝试右键单击VS(我想是吧?)并以管理员身份运行。然后,重建您的项目。让我知道!我以管理员身份运行VS。我需要提供更多信息吗?但我不确定我还能做什么。再次感谢。您可以提供源代码…非常感谢。这很有效!!我将更新我的问题。再次感谢。@chintan欢迎您。