次の方法で共有


C6273

更新 : 2007 年 11 月

警告 6273 - 整数でない値が引数 <数値> として渡されました。<関数> への呼び出しには整数が必要です: ポインタ値が渡されてようとしている場合は、%p を使用してください。

この警告は、書式指定文字列に、たとえば printf の長さまたは優先順位を指定する整数 %d が指定されているが、float、文字列、または struct などの非整数がパラメータとして渡されたことを示します。この問題により、不適切な出力が生じる可能性があります。

使用例

次に示すコードでは、sprintf関数に float ではなく整数値が必要なため、この警告が生成されます。

#include <stdio.h>
#include <string.h>

void f_defective()
{
  char buff[50];
  float f=1.5;
  
  sprintf(buff, "%d",f);
}

次に示す例では、整数のキャストを使用してこの警告を修正しています。

#include <stdio.h>
#include <string.h>

void f_corrected()
{
  char buff[50];
  float f=1.5;

  sprintf(buff,"%d",(int)f);
}

次に示すコードでは、この警告を修正するために安全な文字列操作関数 sprintf_s,を使用しています。

#include <stdio.h>
#include <string.h>

void f_safe()
{
  char buff[50];
  float f=1.5;

  sprintf_s(buff,50,"%d",(int)f);
}

Windows 9x および Windows NT 4 の場合、%p がサポートされないため、この警告は適用されません。

参照

参照

sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l