Partilhar via


C28741

aviso C28741: buffer não anotado na função

Esse aviso indica que um buffer passado como um parâmetro de função ou retornado por uma função deve ser anotado com a SAL (linguagem de anotação de código-fonte) da Microsoft. As ferramentas de análise estática podem usar essas anotações para detectar estouros de buffer.

Atualmente, somente buffers de cadeia de caracteres não constantes são diagnosticados com esse aviso. Idealmente, todos os buffers passados como parâmetros de função ou retornados por funções devem ser anotados. Matrizes de wchar_t ou char são candidatas a esse aviso. Atualmente, os caracteres não assinados não são.

Exemplo

O exemplo de código a seguir gera esse aviso.

  int foo( LPTSTR buffer, size_t cch );

O exemplo de código a seguir evita esse aviso usando a _Out_writes_ de anotação SAL para especificar que a função chamada grava no buffer e que o buffer não pode ser NULL. A anotação indica que o buffer é de elementos cch .

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