malloc で確保したメモリを free しないと、使い終わっても解放されず溜まっていきます。すぐには落ちませんが、長時間動くプログラムで問題になります。
出るコード
char *buf = malloc(1024);
// ... 使う ...
return 0; // free(buf); を忘れている
エラーメッセージ
(valgrind 実行時)
LEAK SUMMARY: definitely lost: 1,024 bytes in 1 blocks
直し方
malloc と free を1対1で対応させます。valgrind ./a.out で漏れを検出できます。