次の方法で共有


C6306

警告 C6306: <関数> への不適切な呼び出しです: va_list を引数として受け入れる <関数> を使用してください

この警告は、誤った関数呼び出しが行われたことを示します。printf ファミリには、引数の変数一覧を受け取る関数がいくつか含まれています。しかし、va_list 引数を使用してこれらの関数を呼び出すことはできません。対応する vprintf 関数ファミリは、そのような呼び出しに使用できます。誤った print 関数を呼び出すと、誤った出力が発生します。

使用例

この警告が発生するコード例を次に示します。

#include <stdio.h>
#include <stdarg.h>


void f(int i, ...)
{
   va_list v;
   
   va_start(v, i);
   //code...
   printf("%s", v); // warning 6306 
   va_end(v);
}

この警告を解決するには、次のコードを使用します。

#include <stdio.h>
#include <stdarg.h>

void f(int i, ...)
{
   va_list v;
  
   va_start(v, i);
   //code...
   vprintf_s("%d",v);
   va_end(v);
}

参照

関連項目

C6273