アカウント名:
パスワード:
uint8_t *buf = NULL; buf = alloc_xx();if(!buf){ ....}...
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
細かいアーキテクチャの差とか (スコア:2, おもしろおかしい)
64bit系だと これだけでNGなんだもんなぁ。頭が古いだけ?
# 64bitではNULL = 0 とは限らないそうで... (Binary Hacksの Hack #49)
むしろ自動で(pointer !=/== NULL)の式に変換すると便利だけど、さすがにやらないよな。
この手のがカーネル系に上手く適用できなくて泣いたことがあるのでID
# カーネルに適用できるなら、*BSD/Linuxに常に活用されていたりすると嬉しいんだけどな。(定点評価みたいに)
M-FalconSky (暑いか寒い)
Re:細かいアーキテクチャの差とか (スコア:2, 参考になる)
64bit に限らず NULL の値は 0 ではない。
そして NULL の値が 0 ではない処理系においても NULL == 0 は
互換性のために真として扱うというのが今の ANSI の規格のはず。
! 演算子でも同様の配慮がされているはず。
Re:細かいアーキテクチャの差とか (スコア:1)
# 勉強になったと考えて、精進々々
M-FalconSky (暑いか寒い)
Re:細かいアーキテクチャの差とか (スコア:0)
>互換性のために真として扱う
微妙に修正しとくと、整数値0がポインタにキャスト
されるとNULLポインタになるから、NULL == 0は真なんだよ。
NULL == 0
NULL == (void*)0
NULL == NULL
これで真になる。
NULLが0になるわけではない。
==や!=に特別な配慮があるわけでもないんです。