同じ累乗でモノムを合計する関数を作成する必要があります。モノムは次の構造体によって定義されます。
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
デバッガーに入れると、polynomial[i] を使用してもそれらを見ることができませんが、(polynomial[0]+i) を使用すると、それらをはっきりと見ることができます。
ここで何が起こっているのですか?