小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


【cppcheck】(error) Memory leak: pointer

はじめに

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していない場合に警告が表示されます。