C28741

avviso C28741: buffer non annotato nella funzione

Questo avviso indica che un buffer passato come parametro di funzione o restituito da una funzione deve essere annotato con il linguaggio di annotazione del codice sorgente Microsoft (SAL). Gli strumenti di analisi statici possono usare tali annotazioni per rilevare i sovraccarichi del buffer.

Attualmente, solo i buffer di stringa non costanti vengono diagnosticati con questo avviso. Idealmente, tutti i buffer passati come parametri di funzione o restituiti dalle funzioni devono essere annotati. Le matrici di wchar_t o char sono candidati per questo avviso. I caratteri non firmati non sono attualmente.

Esempio

Nell'esempio seguente viene generato questo avviso.

  int foo( LPTSTR buffer, size_t cch );

Nell'esempio di codice seguente viene evitato questo avviso usando l'annotazione SAL _Out_writes_ per specificare che la funzione chiamata scrive nel buffer e che il buffer non può essere NULL. L'annotazione indica che il buffer è di elementi cch .

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