解放された値を読んでいません。私は自由なを使用する場合 私の問題がある()ポインタ値はNULLなりません。印刷機能は、私が探索木で働いている、と木が、それがnullだ場合、私がチェックし終わったかどうかを確認するために、正しく
私も解放するためにポインタを使用してみました、その後、NULLに設定するが、それはうまくいきませんでしたしました。この場合
私は探索木上で最大の番号を削除したいが、私の印刷機能ではなく、解放された値と印刷物0を認識しません。
typedef struct nodo {
int val;
struct nodo *l, *r;
} *ABin;
void print (ABin a) {
if (a != NULL) {
print (a -> l);
printf(" %d ",a -> val);
print (a -> r);
}
}
ABin remBiggerA (ABin *a) {
ABin b = (*a), aux = b;
int i = 0;
if (b == NULL) i = 1;
while (i == 0) {
if (b -> r == NULL) {
free (b);
i = 1;
}
else b = b -> r;
}
(*a) = aux;
return aux;
}
ポインタを 'typedef'するのは悪い考えです。 –
私はすでに提供されている情報を与えられた最良の答えを与えましたが、解放されたポインタをヌルに設定してもヌルチェックが登録されていなければ、まったく異なる(ほとんど論理ベースの)問題が発生しています。最小限の検証可能な例を投稿することは可能ですか? –