2012-08-09 169 views
0

我在构建代码时收到上述消息。错误MSB3073:命令“”.. .. .. .. lib Tests.exe“:VCEnd”用代码退出-1073740940

任何人都可以请抛出一些光在这个问题上,帮助我吗?

非常感谢

此致

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

尝试右键单击VS(我假设?)并以管理员身份运行。然后,重建你的项目。让我知道! – ChiefTwoPencils 2012-08-09 11:21:10

+0

我以管理员身份运行VS。我需要提供更多信息吗?但我不确定我还能做什么。再次感谢。 – 2012-08-09 12:24:59

+2

您可以提供源代码... – Poodlehat 2012-08-09 13:05:14

回答

1

,而无需了解究竟你在做这很难说有把握什么细节,但是-1073740940 == == 0xC0000374 STATUS_HEAP_CORRUPTION。它是否会流光?

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

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

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

+0

非常感谢。这工作!我会更新我的问题。再次感谢。 – 2012-08-09 13:48:20

+0

@chintan不客气。 – atzz 2012-08-09 14:38:49

相关问题