たまーに見かけるのですが、こんな感じの変なコードを書いているひといませんか? bool doSomething(...) { Widget* widget = new Widget; if (0 == widget) { return false; } ... if ( ! widget->doSomething()) { ... // エラー処理 return false; } ... return true; } 一見すると変なところはなさそうですが、どこが変かといえば、最初のヌルチェックです。 これを書いた本人は、newでメモリを確保できなかったらNULLが返るからヌルチェックをして失敗を返そうという考えなのかもしれません。が、しか~し、これはコーディングミスです(例外もあるかと思いますが)。 malloc関数はメモリ割り当てに失敗するとNULLを返すので、同じような感覚でNULLが