C28741
предупреждение C28741: неаннотированный буфер в функции
Это предупреждение указывает, что буфер, переданный в качестве параметра функции или возвращаемый функцией, должен быть помечен языком заметок исходного кода Майкрософт (SAL). Средства статического анализа могут использовать такие заметки для обнаружения переполнения буфера.
В настоящее время с этим предупреждением диагностируются только неконстантные строковые буферы. В идеале все буферы, переданные в качестве параметров функции или возвращаемые функциями, должны быть помечены. Массивы wchar_t или char являются кандидатами на это предупреждение. Неподписанные символы в настоящее время не являются.
Примере
В следующем примере кода создается это предупреждение.
int foo( LPTSTR buffer, size_t cch );
Следующий пример кода позволяет избежать этого предупреждения, используя заметку SAL _Out_writes_ , чтобы указать, что вызываемая функция выполняет запись в буфер и что буфер не может иметь значение NULL. Заметка указывает, что буфер состоит из элементов cch .
int foo(_Out_writes_(cch) LPTSTR buffer, size_t cch );