予期しないことに、最小値まで整数値をラップする問題が発生しています。予期しない整数値のラッピング
-858993460にラップする前の整数の値は15です。私は手動でそれが必要な値を変更する場合は、16(
while(ArrayLocation2 < EmpArray2Size)
{
GivenEmployees[(*EmployeeSize++)] = curr2;
prev2 = curr2;
if(ArrayLocation2 < EmpArray2Size)
{
curr1 = EmpArray2[ArrayLocation2];
}
ArrayLocation2++;
if((ArrayLocation2 >= EmpArray2Size) || (prev2.HourlyRate > curr2.HourlyRate))
{
subFiles++;
}
}
(それは大きなものではなく、ここではコピーされます):ここでは
は、この問題を引き起こしているコードです17、18、など)それは期待どおりに動作します。
サイズは "int Size = 21;"と宣言されています。違いがある場合は、現在のメソッド&サイズに渡されます。
なぜこれが起こっているのかについての詳細な回答は可能でしょうか?
必要に応じてさらに詳しい情報を提供できます。
ありがとうございました。
どの整数ですか?コードにはかなりの可能性があります。どのように初期化されていますか?どちらのシステムで作業していますか? 0xCCCCCCCCはプログラムやシステムに重要な意味を持ちますか? –
コードの矛盾をお詫びします。ラッピングする整数は "EmployeeSize"で、OPで説明したように宣言されています。このメソッドを使用するたびに、0にリセットされ、15をヒットするたびに1ずつインクリメントされ、ラップするたびにインクリメントされます。私は64ビットWindows 7システム、Intel i5で作業しています。 – Matt
どこを参照して渡していないことを確認しますか? – deek0146