Sdílet prostřednictvím


C28741

upozornění C28741: Nezařazená vyrovnávací paměť ve funkci

Toto upozornění označuje, že vyrovnávací paměť předaná jako parametr funkce nebo vrácená funkcí by měla být opatřena poznámkami jazykem SAL (Source Code Annotation Language). Nástroje pro statickou analýzu můžou tyto poznámky použít k detekci přetečení vyrovnávací paměti.

V současné době jsou s tímto upozorněním diagnostikovány pouze vyrovnávací paměti řetězců, které nejsou konstantní. V ideálním případě by měly být všechny vyrovnávací paměti předané jako parametry funkce nebo vrácené funkcemi opatřeny poznámkami. Pole wchar_t nebo znakových jsou kandidáty pro toto upozornění. Nepodepsané znaky aktuálně nejsou.

příklad

Následující příklad kódu vygeneruje toto upozornění.

  int foo( LPTSTR buffer, size_t cch );

Následující příklad kódu zabrání tomuto upozornění pomocí poznámky SAL _Out_writes_ určit, že volaná funkce zapisuje do vyrovnávací paměti a že vyrovnávací paměť nemůže mít hodnotu NULL. Poznámka označuje, že vyrovnávací paměť je cch prvků.

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