错误MSB3073:命令“”.. \ .. \ .. \ .. \ lib \ Tests.exe“:VCEnd”退出,代码为-1073740940

时间:2012-08-09 10:59:06

标签: c++

我在构建代码时收到上述消息。

任何人都可以对这个问题有所了解并帮助我吗?

非常感谢

最好的问候

Chintan

更新的问题:以下代码出现上述错误。

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++; 
}

1 个答案:

答案 0 :(得分:1)

如果不知道你究竟在做什么的细节,很难肯定地说出来,但-1073740940 == 0xC0000374 == STATUS_HEAP_CORRUPTION。它有什么亮点吗?

[UPD] 假设将错误值解释为NTSTATUS是正确的,那么您正在破坏堆。进一步假设它出现在您显示的代码中,最有可能是nBin1 < 3nBin1 + 3 >= vBandSubset.size()。在任何一种情况下,循环中的赋值都将覆盖vBandSubset数据块之前或之后的技术堆区域。

由于这是一项测试,我建议您使用vBandSubset.at(i)代替vBandSubset[i]。与operator[]不同,at()验证其参数,如果它无效则会抛出异常。调试比内存损坏容易得多。

PS。您可以编辑您的问题并将代码放在那里。这样对读者来说更方便。