なんかヒープ解放する前にNULLチェックは、恥ずかしいらしい。
先日、わざわざptrをNULLチェックしてからヒープ解放している処理を見かけてしまいました。
別に最底辺的には、動かないわけじゃないから、いいけどさ。
チェックしないほうがcoolらしいよ。
・Not Good
Object* ptr = new Object(); if (ptr != NULL) { delete ptr; }
・Cool!
delete ptr;
ちなみにC言語のfreeも一緒です。
・Not Good
if (ptr != NULL) { free(ptr); }
・Cool!
free(ptr);
この程度、知っていても最底辺だけど、C/C++やるなら覚えておきたいところですね。
今回は、最底辺の癖に偉そうですみません。
ディスカッション
コメント一覧
そうですね。
free() の中では、渡されたポインタがNULLかどうかチェックしているので、
自分でチェックするのは冗長ですね。
僕もブログを絶賛執筆中です。
> そうですね。
> free() の中では、渡されたポインタがNULLかどうかチェックしているので、
> 自分でチェックするのは冗長ですね。
>
> 僕もブログを絶賛執筆中です。
コメントありがとうございます!
「A級プログラマーへの道」の筆者さんからコメント頂くとは恐縮です。
時々、お世話になっております。