小さい頃はエラ呼吸

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


【cppcheck】Size of pointer 'xxx' used instead of size of its data.

はじめに

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

Size of pointer 'xxx' used instead of size of its data.

sizeof演算子に対してポインタ型変数を渡した場合に、警告が表示されます。

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

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

int _tmain(int argc, _TCHAR* argv[])
{
	char *tmp;

	memset(tmp, 0, sizeof(tmp)); // ←これが原因
	memcpy(tmp, "hoge", 4);

	printf("%s", tmp);
	return 0;
}