ポインタが存在するかどうかを確認しており、存在する場合はNULL /ゼロ値を指していません。私のコードは次のようになります。文分割エラーの場合
if (prior != NULL && *prior){
//do something
}
ここで、priorはポインタです。しかし、*prior
にセグメント違反が発生しています。しかし、私はこれがどのように可能であるか理解していません。 if文は、priorがNULLポインタなので、* priorは常に動作するはずです。
アイデア?
おそらくNULLではありませんが、ポインタが無効なアドレスを指していることがあります。 –
コンパイラが未知の識別子について文句を言わない場合は、ポインタ変数**が存在します。あなたの[mcve]はどこですか?あなたが表示する1行に '* prior 'はありません。 – Olaf
ポインタがnullでないという事実は、あなたが逆参照を許されているという意味ではありません。実際には、NULLと比較することさえ許されないかもしれません。 – user2357112