読者です 読者をやめる 読者になる 読者になる

小さい頃はエラ呼吸

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


(warning) The 2nd memset() argument '8224' doesn't fit into an 'unsigned char'.

はじめに

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

(warning) The 2nd memset() argument '8224' doesn't fit into an 'unsigned char'.

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

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

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR *argv[])
{
  typedef struct test{
    char a;
    char b;
    char c;
  } ST_TEST;

  ST_TEST t;
  memset(&t, 0x2020, sizeof(ST_TEST)); //->The 2nd memset...
  //memset(&t, 2020, sizeof(ST_TEST));

}

上記のように、半角スペースで初期化しようとして、誤って0x20を0x2020とすると警告がでます。
実行してみるとちゃんと半角スペースで初期化されているので、問題にはならなそうです。