Comparteix via


C28741

advertencia C28741: búfer no anotado 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 de 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 firmar no están actualmente.

Ejemplo de

El siguiente ejemplo de código 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 );