小さい頃はエラ呼吸

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


【cppcheck】(warning) Found calculation inside sizeof().

はじめに

C++の静的解析ツール「cppcheck」でソースコードを静的解析した場合に、以下の警告がでることがあります。

(warning) Found calculation inside sizeof().

cppcheckのバージョン
  • v1.65
サンプルプログラム

以下のソースプログラムを解析にかけると表示されます。

int _tmain(int argc, _TCHAR* argv[])
{
  char tmp[5];
  memcpy(tmp, "hoge", sizeof(tmp-1));

  return 0;
}

上記の感じで、sizeof演算子の中でサイズの調整をしてしまった場合に警告が表示されます。