• ベストアンサー

NULLの場合のint変数への代入

以下のような場合には最終行はint i=(num) ? 0:*num;に直すべきでしょうか? int *num; ・・・略 ・・・ここでnumはNULLかもしれません。 int i=*num;

質問者が選んだベストアンサー

  • ベストアンサー
  • KSnake
  • ベストアンサー率83% (5/6)
回答No.2

nullの処理をしたいのならそれでは不十分です。 int i=(!num) ? 0:*num; とするのはnumがnullの時はiが0で処理しても良いことが 保証されているときにだけすべきです。 そういった補償がないのなら以下のようにすべきでしょう。 if(num == NULL) return 0;//返す値は取り決めてください int i = *num;

seyrgr
質問者

お礼

大事なことを書くのを忘れていました。 numがNULLの時はiは0で処理してほしいです。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>int i=(num) ? 0:*num;に直すべきでしょうか? 直すとすれば、 int i = (num) ? *num : 0; の方がよくないですか? あくまで、直すとすれば、の話ですけど。

seyrgr
質問者

お礼

反対に書いていましたね。ありがとうございます。

関連するQ&A

専門家に質問してみよう