メモリの動的確保とポインタについて勉強したのですが、
分からないところがあったので質問します

・mallocで確保したメモリは、プログラムの終了と同時に解放されることは保証されているのか
・関数内でmallocで確保したメモリは関数が終了しても解放されず、
 別の関数から参照できることは保証されているか

両方、正常に動くことは確認できたのですが、あらゆる環境・状態で成り立ちますか?