<CLearn/>
メモリ管理 レッスン6

メモリ安全性

バッファオーバーフロー・ダングリングポインタ・二重解放を学びましょう。

代表的なメモリ安全性の問題

C言語ではメモリ安全性はプログラマの責任です。主な問題点を理解して回避しましょう。

  • バッファオーバーフロー: 配列の範囲外アクセス
  • ダングリングポインタ: free後のポインタを使用
  • 二重解放(double free): 同じポインタを2回free
  • 未初期化メモリの読み取り: malloc後の初期化なし使用

バッファオーバーフローの防止

配列境界を常にチェックし、文字列関数は安全な版(strncpy、snprintf)を使います。

Cエディタ

ダングリングポインタの防止

free() 後はポインタを NULL に設定します。NULL チェックを守れば二重解放も防げます。

Cエディタ

安全なメモリ管理パターン

確保・使用・解放のライフサイクルを明確にし、所有権を意識した設計が重要です。

Cエディタ