Malloc
OSのカーネルでもアプリケーションと同様にメモリ確保が必要である。カーネル内にもmalloc相当の関数はあるが、その実装はCライブラリのものとは大きく異なる。例えば、DMA用のバッファには特別な制限が課せられることがあるし、割り込み処理でメモリを動的に確保したい場合もある。このため、カーネルの仮想記憶サブシステムと密に連携した malloc 実装が要求される。
mallocで確保されたメモリは持続性がある。プログラム終了時か明示的にプログラマが解放しない限り存在し続ける。解放はfree関数で行われる。そのプロトタイプは次のようになる。
ここで、pointerの指すメモリブロックが解放される。