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欢迎您。