Поделиться через


Предупреждение C6063

Отсутствующий строковый аргумент функции, соответствующий описательу преобразования "number".

Замечания

Это предупреждение указывает на то, что недостаточно аргументов предоставляются для сопоставления строки формата. По крайней мере один из отсутствующих аргументов является строкой. Этот дефект может вызвать сбои и переполнение буфера sprintf (если вызываемая функция является семейством), а также потенциально неправильные выходные данные.

Имя анализа кода: MISSING_STRING_ARGUMENT_TO_FORMAT_FUNCTION

Пример

Следующий код создает это предупреждение:

#include <stdio.h>
void f( )
{
  char buff[15];
  sprintf(buff, "%s %s", "Hello, World!");
}

Чтобы исправить это предупреждение, удалите неиспользуемый описатель формата или укажите необходимые аргументы, как показано в следующем коде:

#include <stdio.h>
void f( )
{
  char buff[15];
  sprintf(buff, "%s %s ", "Hello","World");
}

Следующий код исправляет это предупреждение с помощью функции безопасной обработки строк.

#include <stdio.h>
void f( )
{
  char buff[15];
  sprintf_s( buff, sizeof(buff),"%s", "Hello, World!" );
}

См. также

Синтаксис спецификации форматирования: функции printf и wprintf
sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l