はじめに
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; }