我遇到一个问题,整数意外地包装到其最小值。
整数的值在包装为-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)++
。