プログラミングを行っている間、アサートとNULLポインターの検証を使用しています。
しかし、私が知っているように、assert はDEBUGモードでのみ役に立ちます。
私の質問は、ポインターを返す NULL の例関数であると確信できない内部ポインターがあると仮定します (ただし、ポインターはクラスのメンバーではありません)。そのような場合、assertを使用できます。
test* ptr = fun(); // return a pointer of type test
assert(ptr);
//do some operation
またはNULLポインターの検証
test* ptr = fun(); // return a pointer of type test
assert(ptr);
if (NULL != ptr)
{
//do some operation
}
ここでは、どのコード プラクティスが優れているかを説明します。控えめに言っても、2 つ目になります。考えられない異常なケースが原因で、 ptrの値がNULLを返す状況に直面したためです。
しかし、他にもっと良い選択肢はありますか?