テストの回答・解説を行う。
メモリの使用量の総括
後期中間までの授業内容を総括し、処理速度をあげるためのテクニック紹介であった点を強調する。 しかし、プログラミングでは「速度」、「処理の複雑さ」、「メモリ使用量」が重要であるとの 視点から、「メモリの使用量」の話しをする。
リストなら、M(N) = (sizeof( data部 ) + sizeof( ポインタ )) * N 配 列 なら、M(N) = sizeof( data部 ) * N ただし、想定データ件数=実際データ件数の場合。 現実は、C なら配列サイズは、固定なので、 M(N) = sizeof( data部 ) * MAX
参照カウンタ法
前の説明の「リストではポインタのデータ量が無駄」との話しを発展し、 malloc() は、もうちょっと無駄がある点を話したいので、参照カウンタ法の話しをする。
最初に、リストによる和集合計算のプログラムと、全リストの開放処理のプログラムを示し、 共有の発生するプログラムでは、全リスト開放で2重ポインタ開放が発生する可能性をしめす。 その解決法として、参照カウンタ法を示す。
最後に、参照カウンタ法の実例として、unix ファイルシステムでの参照カウンタの説明を行う。 参照カウンタ法の欠点(循環リスト)については、次週。