今までmalloc関数で確保した領域は必ずその関数内でfree関数を使って解放しなければならないと思っていたのですが、
プログラミングC第二版の173ページのstrdup関数の例ではfree関数でを解放していないようです(そんなことをしたらどうなるかくらいは分かります)。

もしかして、場合によっては解放しなくてもよいのですか?