我遇到一个问题,整数意外地包装到其最小值。

整数的值在包装为-858993460之前为15。

Here是导致此问题的代码:

while(ArrayLocation2 < EmpArray2Size)
{
    GivenEmployees[(*EmployeeSize++)] = curr2;

    prev2 = curr2;
    if(ArrayLocation2 < EmpArray2Size)
    {
        curr1 = EmpArray2[ArrayLocation2];
    }
    ArrayLocation2++;

    if((ArrayLocation2 >= EmpArray2Size) || (prev2.HourlyRate > curr2.HourlyRate))
    {
        subFiles++;
    }
}

如果我手动更改所需的值(16、17、18等),它将按预期工作。

如果大小有所不同,则将大小声明为int Size = 21;并传递给当前方法为&Size。

为什么会这样呢?

最佳答案

表达式*EmployeeSize++返回EmployeeSize指向的值,然后递增指针而不是指向的项。尝试(*EmployeeSize)++

07-26 09:42