Share via


C28741

advertencia C28741: Búfer sin anotar en la función

Esta advertencia indica que un búfer pasado como parámetro de función o devuelto por una función debe anotarse con el lenguaje anotación de código fuente (SAL) de Microsoft. Las herramientas de análisis estático pueden usar estas anotaciones para detectar saturaciones del búfer.

Actualmente, solo se diagnostican búferes de cadenas no constantes con esta advertencia. Idealmente, todos los búferes pasados como parámetros de función o devueltos por las funciones deben anotarse. Las matrices de wchar_t o char son candidatas para esta advertencia. Los caracteres sin signo no están actualmente.

Ejemplo

El código siguiente genera esta advertencia.

  int foo( LPTSTR buffer, size_t cch );

En el ejemplo de código siguiente se evita esta advertencia mediante la anotación SAL _Out_writes_ para especificar que la función llamada escribe en el búfer y que el búfer no puede ser NULL. La anotación indica que el búfer es de elementos cch .

    int foo(_Out_writes_(cch) LPTSTR buffer, size_t cch );