0

コードをビルドすると、上記のメッセージが表示されます。

誰でもこの問題に光を当てて助けてもらえますか?

どうもありがとう

よろしくお願いします

ちんたん

更新された質問: 上記のエラーは、次のコードで発生します。

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

1 に答える 1

1

正確に何をしているのかについての詳細を知らなければ、確実に何かを言うのは難しいですが、-1073740940 == 0xC0000374 == STATUS_HEAP_CORRUPTION. それは何か光を当てますか?

[UPD] NTSTATUS としてのエラー値の解釈が正しいと仮定すると、ヒープが破損しています。さらに、表示されたコードで発生すると仮定すると、またはのいずれかである可能性が最も高いnBin1 < 3ですnBin1 + 3 >= vBandSubset.size()。いずれの場合も、ループ内の割り当てによって、vBandSubsetデータ ブロックの前または後のテクニカル ヒープ領域が上書きされます。

vBandSubset.at(i)これはテストなので、代わりにを使用することをお勧めしますvBandSubset[i]。とは異なりoperator[]at()その引数を検証し、無効な場合は例外をスローします。例外は、メモリ破損よりもはるかに簡単にデバッグできます。

PS。質問を編集して、そこにコードを配置できます。その方が読者にとって便利です。

于 2012-08-09T12:50:21.877 に答える