はじめに
C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。
(error) Memory leak: pointer
cppcheckのバージョン
- v1.65
サンプルプログラム
以下のソースプログラムを解析にかけると表示されます。
#include "stdafx.h" #include <stdlib.h> int _tmain(int argc, _TCHAR *argv[]) { char *pointer = (char *)malloc(100); if (pointer == NULL) { printf("%s", "メモリアロケート失敗"); return EXIT_FAILURE; } //free(p); //->(error) Memory leak: pointer return 0; }
上記のように、malloc関数でメモリを獲得して、その領域をfreeしていない場合に警告が表示されます。