C言語の、memallocとfopenの2つで疑問に思っていることがあります。
「新C言語入門 シニア編 著:林晴比古」(ISBN4-7973-0652-1)によれば、

<1>
memallocで確保したメモリ領域をプログラムの終了時点まで
使用しているときは、わざわざfreeでメモリ解放することはありません。
そのプログラムが終了するとき、使用していたメモリ領域は
自動的に解放されます。
(337ページより引用)

<2>
Cプログラムは、終了するときにもしファイルがオープンされたままに
なっていたら、それを自動的にクローズしてくれます。したがって、
同じファイルポインタを別用途に使わないのであれば、fcloseを
書かなくてもかまいません。
(368ページより引用)

とのことですが、実際に、freeやfcloseを使わずに、
returnやexitによる終了時自動解放をあてにして、
memallocとfopenの関数を使っているちょっとしたプログラムを書きました。
それを現役プログラマの友人に見せたところ、
「freeを使ってメモリ解放していない。メモリリークしてしまう。」
「終了時にファイルが開いたままだ。fcloseを使うべきだ。」
などと指摘されてしまいました。

これら2つをまとめると、
一方(C言語の本)は「終了時に解放されるから良い」、
もう一方(現役プログラマ)は「自分で解放してあげなければならない」、
と、両者の板挟みを喰らって、どちらが正しいのか分からない状態なので、
詳しい方、ご教授願います。