本文へスキップ
BecomeCoder

C言語のエラー · エラー6

メモリリーク ― free し忘れ(実行時の問題)

malloc で確保したメモリfree しないと、使い終わっても解放されず溜まっていきます。すぐには落ちませんが、長時間動くプログラムで問題になります。

出るコード

char *buf = malloc(1024);
// ... 使う ...
return 0;   // free(buf); を忘れている

エラーメッセージ

(valgrind 実行時)
LEAK SUMMARY: definitely lost: 1,024 bytes in 1 blocks

直し方

mallocfree を1対1で対応させます。valgrind ./a.out で漏れを検出できます。