我需要编写一个对具有相同功率的单声道求和的函数,单声道由以下结构定义:
typedef struct monom {
int coefficient;
int power;
}MONOM;
我从工作中编写的功能是:
int sumMonomsWithSamePower(MONOM** polynomial, int size)
{
int i, powerIndex = 0;
for (i = 0; i < size; i++)
{
if ((polynomial[powerIndex])->power == (polynomial[i])->power)
{
if (powerIndex != i)
(polynomial[powerIndex])->coefficient += (polynomial[i])->coefficient;
}
else
powerIndex++;
}
powerIndex++;
*polynomial = (MONOM*)realloc(polynomial, powerIndex);
return powerIndex;
}
通过以下调用调用它:
*polySize = sumMonomsWithSamePower(&polynomial, logSize);
多项式数组作为 MONOM 的排序数组(按幂升序排序)发送到函数。
我的问题是sumMonomsWithSamePower()
函数的第 7 行崩溃,因为它无法通过以下方式看到数组中的元素。当我将数组的元素放入Watch list
调试器时,我也无法使用多项式 [i] 看到它们,但如果我使用 (polynomial[0]+i),我可以清楚地看到它们。
这里发生了什么?