イマドキのCやC++でヌルポインタってどう扱うの?
@5mingame2 このページにある「適切に変換される」しくみはANSIの勧告に従っているコンパイラの場合であって、全てのコンパイラが従っている補償は無いと思います。(gccの最近の版は問題無いでしょうね~)※自分が読んだHowtoのソースは見つけられなかった・・
2011-03-10 01:15:28@5mingame2 話題に遅れてしまった! C++では、assert(ptr)が正しいです。!= NULLは論外、!= 0もよろしくないです。なぜならば、C++ではptrはoperator boolで評価されるから。
2011-03-10 03:52:30@5mingame2 @hira_kuni_45 0が適切なヌルポインタに変換されるというのは誤解で、 ポインタに対する == , != オペレータが適切な処理をしてくれているのです。
2011-03-10 03:54:06@5mingame2 @hira_kuni_45 気味が悪いのは、型に依存しないはずのCにおいてもoperator void*の定義が無理矢理されているこどですね。(それで0が実際のポインタに変換されているように振舞います)
2011-03-10 04:08:03@hgodai 先生ありがとうございます!ツイッターだと文字制限が厳しくて上手に書けません…^^; ので、是非次回の勉強会で掘り下げましょう!
2011-03-10 14:21:29Cでのヌルポインタの話、ここの質問も興味深い。ちなみに自分もちゃんと説明できません…^^; http://okwave.jp/qa/q942749.html
2011-03-10 14:44:56ありがとうございます! 実は昨日別の方から教えてもらい、現在精読中です^^; QT @DARL_Japan そう言えば、このページ御存知ですか? http://www.kouno.jp/home/c_faq/
2011-03-10 14:50:09@5mingame2 ヌルポインタはC言語ではイタイ実装になっていたのがC++ではスマートに解決されているので両言語の違いがよく出ていて面白いですね。ネタにさせてください。
2011-03-10 16:52:37